使用CDATA块时的TinyXml保存格式

时间:2010-10-06 09:24:15

标签: tinyxml

如果我有这个测试代码:

    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,或者只是它的方式?     

1 个答案:

答案 0 :(得分:2)

如果是TinyXML,看起来像输出格式中的错误。

将TiXmlPrinter用于输出而不是TiXmlDocument输出(我假设您正在使用?)可能会有效。 TiXmlPrinter使用不同的打印路径,可能没有相同的错误。