0

このテストコードがある場合:

    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>

これで、理想的にはすべて1行になりますが、CDATAコンテンツをネストしてもかまいません...しかし、最後にインデントがねじ込まれているのは面倒<TestNode>です。これはTinyXmlの制御可能な部分ですか、それともバグですか、それともそのままですか?

4

1 に答える 1

2

TinyXMLの場合、出力フォーマットのバグのように見えます。

TiXmlDocument出力の代わりにTiXmlPrinterを出力に使用することは機能するかもしれません(私はあなたが使用していると思いますか?)。TiXmlPrinterは別の印刷パスを使用するため、同じバグがない可能性があります。

于 2010-10-06T17:13:35.140 に答える