//使用SAXXMLReader和MXXMLWriter会更改xml头,做点处理
//FileName: XML_Indent.hta
<SCRIPT language="javascript">
function XML_Indent(URLs){
var xmldoc = new ActiveXObject("Microsoft.XMLDOM");
xmldoc.async = false;
var status = xmldoc.load(URLs);
if( status ){
var xmlHeader=xmldoc.childNodes[0].xml; //在开始解析前保存xml头
var rdr = new ActiveXObject("MSXML2.SAXXMLReader");
var wrt = new ActiveXObject("MSXML2.MXXMLWriter");
wrt.indent = true;
rdr.contentHandler = wrt;
rdr.parse(xmldoc);
xmldoc.loadXML(wrt.output);
var xmlChildLength=xmldoc.childNodes.length;
var xmlBody='';
for(var i=1;i<xmlChildLength;i++) xmlBody+= xmldoc.childNodes[i].xml;
xmldoc.loadXML(xmlHeader + xmlBody);
xmldoc.save(URLs);
alert('格式化缩进完成! 文件保存在:/n'+FilePath.value);
} else {
alert('加载文档出错! ');
}
}
</SCRIPT>
<INPUT TYPE="file" NAME="FilePath"><INPUT TYPE="button" OnClick="XML_Indent(FilePath.value)" VALUE="XML Indent">