如果要把转换后的结果存储到本地的话,需要把IE的安全设置设低一些,否则得到outDoc.xml就可以了<html>
<input type="button" value=" test " size="20" onclick="transition('input.xml')"/>
<script language="javascript">
<!--var inDoc, outDoc;
function transition(sFileName) {
inDoc = new ActiveXObject("Msxml2.DOMDocument.4.0");
inDoc.async = false;
inDoc.load(sFileName); outDoc = new ActiveXObject("Msxml2.DOMDocument.4.0");
outDoc.async = false;
var rootNode = outDoc.createNode(1, "menu", "");
outDoc.appendChild(rootNode);
buildXml(rootNode, 0);
//alert(outDoc.xml);/*------String Result--------*/ var fso = new ActiveXObject("Scripting.FileSystemObject");
var f = fso.createTextFile("c:\\output1.xml", true);
var headerLine ='<?xml version="1.0" encoding="gb2312"?>';
f.WriteLine(headerLine);
f.Write(outDoc.xml);
f.close();
}function buildXml(parentNode, level) {
var xPath = "/menu/menuitem[parent=" + level + "]";
var nodes = inDoc.documentElement.selectNodes(xPath); for(var i=0; i<nodes.length; i++) {
var xNode = nodes.item(i);
var sName = xNode.selectSingleNode("name").text;
var sParent = xNode.selectSingleNode("parent").text;
var sLevel = xNode.selectSingleNode("node").text;
if(sParent==level) {
var newNode = outDoc.createNode(1, "menuitem", "");
parentNode.appendChild(newNode);
var sNode = outDoc.createNode(1, "name", "");
sNode.text = sName;
newNode.appendChild(sNode);
buildXml(newNode, sLevel);
}
}
}//-->
</script>