js生成xml文件及js读取xml文件,获得xml节点子节点的个数(同Extjs中树获得子结点个数)...

1.先说js读取xml文件吧:

//var szXml= OCX.GetXmlInfo(); ///得到xml的串

Demo:

var szXml = "1"
+ "4"
+ "io1lane1wndindex1"
+ "io2lane2wndindex2 "
+ "io3lane3wndindex3
"
+ "
";

var xmlDoc = new ActiveXObject("Microsoft.XMLDOM"); ///建立模型

xmlDoc.async = "false";

xmlDoc.loadXML(szXml);

注意:在写xmlDoc.documentElement时,已经定位到了root节点之下。

而后,在用xmlDoc.documentElement.childNodes[0]时,便找到了PreviewInfo节点,而它的子节点,就是PreviewType,但要小心,PreviewType的值不是1,数值1也是一个节点,所以在用xmlDoc.documentElement.childNodes[0].childNodes[0]之后,需要再用一次childNodes[0],此时定位到了1节点,而用此节点的nodeValue属性,就拿到了1

不信的话,就alert(xmlDoc.documentElement.childNodes[0].childNodes[0].childNodes[0].nodeValue);可以看到1了吧。。。


然后其他的呢,就可以以此类推了:

xmlDoc.documentElement.childNodes[1].childNodes[1].childNodes[0].nodeValue; 这个值就是io1了。。。。。。

然后呢,我们要知道一个节点下有多少个子节点,方法是:

var tmp = xmlDoc.documentElement.childNodes[1].childNodes[1].childNodes;
alert(tmp.length);



2.用js生成xml文件:


var GroupNode = ResConfigTree.getNodeById(szNodeID); ///得到树中被点击的结点
var XmlDoc = new ActiveXObject("MSXML2.DOMDocument");
var Instruction = XmlDoc.createProcessingInstruction("xml","version='1.0' encoding='utf-8'");

XmlDoc.appendChild(Instruction);

var Root = XmlDoc.createNode(1, "RequestInfo", ""); ///设置根结点RequestInfo

Element = XmlDoc.createElement("PollTime"); //设置一个结点
Element.text = '2'; //赋值

Root.appendChild(Element);//将它放在根下面


var GroupInfoNode = XmlDoc.createNode(1, "GroupInfo", ""); //设置了一个空结点GroupInfo


//var GroupLaneCountNode = XmlDoc.createNode(1, "GroupLaneCount", "");//设置了另一个空结点

Element = XmlDoc.createElement("DataServerIp");

Element.text = “127.0.0.1”;

GroupInfoNode.appendChild(Element); ///将DataServerIp放在GroupInfo之下,成为其子结点


var LaneInfoNode = XmlDoc.createNode(1, "LaneInfo", ""); ///设置Laneinfo空结点


Element = XmlDoc.createElement("LaneCount");
Element.text = '1';
LaneInfoNode.appendChild(Element); //将LaneCount放在其下



GroupNode.eachChild(function(_node){ ///遍历被点击的树结点下面的所有子结点,将它们的属性放在xml中,放在LaneInfo结点之下
Element = XmlDoc.createElement("IOSN");
Element.text = _node.attributes.ioid;
LaneInfoNode.appendChild(Element);

Element = XmlDoc.createElement("LaneSN");
Element.text = _node.attributes.sn;
LaneInfoNode.appendChild(Element);

Element = XmlDoc.createElement("PlayNum");
Element.text = iPalyNum;
LaneInfoNode.appendChild(Element);

});

GroupInfoNode.appendChild(LaneInfoNode); 将Laneinfo结点放在Goupinfo结点下

Root.appendChild(GroupInfoNode); group节点挂在根上 RequestInfo下放group
XmlDoc.appendChild(Root); 生成了xmlDoc,即xml文件


你可能感兴趣的:(js生成xml文件及js读取xml文件,获得xml节点子节点的个数(同Extjs中树获得子结点个数)...)