TinyXml сохранить форматирование при использовании блоков CDATA - PullRequest
0 голосов
/ 06 октября 2010

Если у меня есть этот тестовый код:

    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, или ошибка, или просто так?

1 Ответ

2 голосов
/ 06 октября 2010

Похоже на ошибку в выходном форматировании, если TinyXML.

Может быть полезно использовать TiXmlPrinter для вывода вместо вывода TiXmlDocument (который я предполагаю, что вы используете?) TiXmlPrinter использует другой путь печати и может не иметь такой же ошибки.

...