0

以下代码

Xml.Node* node = new Xml.Node (null, "name");
node->set_content("&");

产生以下错误:

错误:未终止的实体引用

这是一个错误还是我做错了什么?

大于和小于字符都可以正常工作。此外, add_content 方法适用于 & 字符。

4

1 回答 1

5

这是一个错误还是我做错了什么?

后者。来自xmlNodeSetContent文档:“内容应该是一段 XML CDATA,因此它允许实体引用,但需要首先转义 XML 特殊字符......”。您可以使用GLib.Markup.escape_text来执行此操作。

此外, add_content 方法适用于 & 字符。

来自xmlNodeAddContent文档:“与 xmlNodeSetContent() 相比,@content 应该是原始文本,因此允许使用未转义的 XML 特殊字符,不支持实体引用。”

于 2013-01-26T03:47:11.517 回答