2010-10-06 19 views
0

Si j'ai ce code de test:TinyXML sauvegarde mise en forme lors de l'utilisation des blocs CDATA

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); 

Avec la ligne commentée je reçois XML de sortie:

<ParentNode> 
    <TestNode>Test Content</TestNode> 
</ParentNode> 

décommenter les lignes que je reçois:

<ParentNode> 
    <TestNode> 
     <![CDATA[Test Content]]> 
</TestNode> 
</ParentNode> 

Maintenant, idéalement, ce serait toujours une ligne, mais je ne me soucie pas vraiment de mettre le contenu CDATA imbriqué ... mais la fac t indentation est foutu sur la fermeture <TestNode> est une douleur. Est-ce une partie contrôlable de TinyXml, ou un bug, ou juste comme il est?

Répondre

1

Cela ressemble à un bug dans le formatage de sortie si TinyXML.

Il peut être utile d'utiliser TiXmlPrinter pour la sortie au lieu de la sortie TiXmlDocument (que je suppose que vous utilisez?). TiXmlPrinter utilise un chemin d'impression différent et peut ne pas avoir le même bug.