1.先说js读取xml文件吧:
//var szXml= OCX.GetXmlInfo(); ///得到xml的串
Demo:
var szXml = "
+ "
+ "
+ "
+ "
+ "
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文件:
XmlDoc.appendChild(Instruction);
var Root = XmlDoc.createNode(1, "RequestInfo", ""); ///设置根结点RequestInfoRoot.appendChild(Element);//将它放在根下面
var GroupInfoNode = XmlDoc.createNode(1, "GroupInfo", ""); //设置了一个空结点GroupInfo
Element = XmlDoc.createElement("DataServerIp");
Element.text = “127.0.0.1”;GroupInfoNode.appendChild(Element); ///将DataServerIp放在GroupInfo之下,成为其子结点
var LaneInfoNode = XmlDoc.createNode(1, "LaneInfo", ""); ///设置Laneinfo空结点
GroupInfoNode.appendChild(LaneInfoNode); 将Laneinfo结点放在Goupinfo结点下
Root.appendChild(GroupInfoNode); group节点挂在根上 RequestInfo下放group