如果我有这个测试代码:
TiXmlElement *parentElem = new TiXmlElement("ParentNode");
TiXmlElement *newElem = new TiXmlElement("TestNode");
TiXmlText *textElem = new TiXmlText("Test Content");
//textElem->SetCDATA(true);
newElem->LinkEndChild(textElem);
parentElem->LinkEndChild(newElem);
在评论行中,我得到输出XML:
<ParentNode>
<TestNode>Test Content</TestNode>
</ParentNode>
取消注释我获得的一行:
<ParentNode>
<TestNode>
<![CDATA[Test Content]]>
</TestNode>
</ParentNode>
现在理想情况下它仍然只是一行,但我真的不介意它将CDATA内容嵌套...但事实上缩进在结束<TestNode>
时被搞砸是一种痛苦。这是TinyXml的可控部分,还是一个bug,或者只是它的方式?
答案 0 :(得分:2)
如果是TinyXML,看起来像输出格式中的错误。
将TiXmlPrinter用于输出而不是TiXmlDocument输出(我假设您正在使用?)可能会有效。 TiXmlPrinter使用不同的打印路径,可能没有相同的错误。