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