在Vala中,为什么node-> set_content不接受&符号?

时间:2013-01-26 02:42:41

标签: libxml2 vala

以下代码

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

产生以下错误:

错误:未终结的实体参考

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

大字符和小字符都可以正常工作。此外,add_content方法与&符号一起正常工作。

1 个答案:

答案 0 :(得分:5)

  

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

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

  

此外,add_content方法可以使用&符号。

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