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

Way*_*yne 0 libxml2 vala

以下代码

Xml.Node* node = new Xml.Node (null, "name");
node->set_content("&");
Run Code Online (Sandbox Code Playgroud)

产生以下错误:

错误:未终止的实体引用

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

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

nem*_*equ 5

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

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

此外,add_content方法与&符号一起正常工作.

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