Microsoft/XMLDOMオブジェクトを使用してXLMドキュメントを変更したい。出力は各要素を新しい行に置き、インデントレベルはネストレベルと一致する必要があります。私は、XML出力が有効であることを知っている。これはインデント付きXMLを作成する
<root>
<A>foo</A><B>bar</B>
</root>
になり
<root>
</root>
この入力ファイル "in.xml" で
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");
:私はこのようなスクリプトでこれを試してみましたInternet ExplorerやXMLDOM、libXMLなどを使用するその他のプログラムなどの他のアプリケーションでも読み取ることができます。しかし、妙な理由から、マニュアル編集を簡略化するためには、フォーマットの整った出力を得たいと思っています。
この結果を得るためにスクリプトを変更するにはどうすればよいですか?
<root>
<A>foo</A>
<B>bar</B>
</root>
私はappendChild(CRLF)
をいくつかの場所に追加しました。しかし、追加された要素間では機能しません。