以下代码
Xml.Node* node = new Xml.Node (null, "name");
node->set_content("&");
产生以下错误:
错误:未终止的实体引用
这是一个错误还是我做错了什么?
大于和小于字符都可以正常工作。此外, add_content 方法适用于 & 字符。
这是一个错误还是我做错了什么?
后者。来自xmlNodeSetContent文档:“内容应该是一段 XML CDATA,因此它允许实体引用,但需要首先转义 XML 特殊字符......”。您可以使用GLib.Markup.escape_text来执行此操作。
此外, add_content 方法适用于 & 字符。
来自xmlNodeAddContent文档:“与 xmlNodeSetContent() 相比,@content 应该是原始文本,因此允许使用未转义的 XML 特殊字符,不支持实体引用。”