如何使用缩进保存MSXML2.DomDocument? (我认为它使用MXXMLWriter) [英] How can I save an MSXML2.DomDocument with indenting? (I think it uses MXXMLWriter)
本文介绍了如何使用缩进保存MSXML2.DomDocument? (我认为它使用MXXMLWriter)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个MSXML2.DomDocument的实例。
I have an instance of MSXML2.DomDocument.
我挥动来保存它,并缩进。
I wave to save it, with indenting.
此代码有效,但不会缩进:
This code works, but does not indent:
var dom = new ActiveXObject("MSXML2.DomDocument");
// fiddle with dom here
dom.save(filename);
我想我可以使用MXXMLWriter对象来注入缩进。
I think I can use an MXXMLWriter object to inject indenting.
怎么样?
推荐答案
这个做得很好。
function saveDomWithIndent(dom, filename) {
var writer = new ActiveXObject("MSXML2.MXXMLWriter"),
reader = new ActiveXObject("MSXML2.SAXXMLReader"),
fso = new ActiveXObject("Scripting.FileSystemObject"),
textStream = fso.CreateTextFile(filename, true);
writer.indent = true;
writer.omitXMLDeclaration = true;
reader.contentHandler = writer;
reader.parse(dom);
textStream.Write(writer.output);
textStream.Close();
}
像这样使用:
var root, node, newnode,
dom = new ActiveXObject("MSXML2.DOMDocument.6.0");
dom.async = false;
dom.resolveExternals = false;
dom.load(fullpath);
root = dom.documentElement;
node = root.selectSingleNode("/root/node1");
if (node !== null) {
newnode = dom.createElement('node2');
newnode.text = "hello";
root.appendChild(newnode);
saveDomWithIndent(dom, fullpath);
}
我无法弄清楚如何调整缩进级别。它总是用标签缩进。
I could not figure out how to adjust the indent level. It always indents with a tab.
这篇关于如何使用缩进保存MSXML2.DomDocument? (我认为它使用MXXMLWriter)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文