Ich möchte ein XLM-Dokument mit dem Microsoft/XMLDOM-Objekt ändern. Die Ausgabe sollte jedes Element in einer neuen Zeile platzieren und die Einzugsebene sollte der Verschachtelungsebene entsprechen. Ich habe versucht, dies mit einem Skript wie folgt:Erstellen von XML mit Einzug
var objXML = new ActiveXObject("Microsoft.XMLDOM");
objXML.load("in.xml")
var CRLF = objXML.createTextNode("\n");
var root = objXML.documentElement;
var node = objXML.createNode(1, "A", root.namespaceURI);
var text = objXML.createTextNode("foo");
node.appendChild(text);
root.appendChild(node);
root.appendChild(CRLF); // creates NOT a newline after <A>foo</A>
node = objXML.createNode(1, "B", root.namespaceURI);
text = objXML.createTextNode("bar");
node.appendChild(text);
root.appendChild(node);
root.appendChild(CRLF); // creates a newline after <B>bar</B>
objXML.save("out.xml");
Mit dieser Eingabedatei "in.xml"
<root>
</root>
Das in
<root>
<A>foo</A><B>bar</B>
</root>
Ergebnisse Ich weiß, dass die XML-Ausgabe gültig ist und kann von anderen Anwendungen wie Internet Explorer oder einem anderen Programm, das XMLDOM, libXML oder ähnliches verwendet, gelesen werden. Aber aus ästhetischen Gründen und wahrscheinlich um die manuelle Bearbeitung zu vereinfachen, möchte ich eine gut formatierte Ausgabe erhalten.
Wie kann ich das Skript ändern, um dieses Ergebnis zu erhalten?
<root>
<A>foo</A>
<B>bar</B>
</root>
Ich habe die appendChild(CRLF)
an einigen Stellen hinzugefügt. Aber es funktioniert nicht zwischen den hinzugefügten Elementen.