PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : libxml2: Indentation beim Einfuegen neuer Knoten



Goucho
04-05-2007, 12:26
Hallo allerseits!

Ich habe ein Problem mit dem Zeilenumbruch und der Indentation wenn ich mittels libxml2 ein Dokument lade, einen neuen Node einfuege und das ganze wieder speichere. Dazu die Dokumente:

Geladen wird:


<?xml version="1.0"?>
<WholeTree>
<Level1>
<dummyEntry>1</dummyEntry>
</Level1>
</WholeTree>


Das Programm:


#include <libxml/xmlmemory.h>
#include <libxml/parser.h>

int main(int argc,char* argv[])
{
xmlDocPtr doc;
xmlNodePtr cur;

doc = xmlParseFile("results.xml");
if (doc == NULL ) {
fprintf(stderr,"Document not parsed successfully. \n");
return 0;
}

cur = xmlDocGetRootElement(doc);

if (cur == NULL) {
fprintf(stderr,"empty document\n");
xmlFreeDoc(doc);
return 0;
}

xmlNewTextChild (cur, NULL, (xmlChar*)"newnode",(xmlChar*)"entry");

xmlIndentTreeOutput = 1;
xmlKeepBlanksDefault(0);

xmlSaveFormatFile ("-", doc, 1);
return 0;
}


erzeugt den output:


<?xml version="1.0"?>
<WholeTree>
<Level1>
<dummyEntry>1</dummyEntry>
</Level1>
<newnode>entry</newnode></WholeTree>


Wobei ich eigentlich erwarten wuerde, dass die Ausgebe wie folgt aussieht:


<?xml version="1.0"?>
<WholeTree>
<Level1>
<dummyEntry>1</dummyEntry>
</Level1>
<newnode>entry</newnode>
</WholeTree>


Hat jemand eine Ahnung, wie das zu beheben sein koennte?

Mit bestem Dank im vorraus!

Goucho