Javascript操作xml

来源:互联网 发布:wifi网络波动怎么解决 编辑:程序博客网 时间:2024/06/09 14:52
在B/S系统中经常需要在客户端和服务器端之间交互数据,这些数据一般都是在客户端由Javscript组织然后发回服务器。对于一些复杂的数据我们一般用xml的格式组织。本文将给出javascript对xml的一些基本操作。 在javascript中是利用MSXml2组件对xml进行操作。该组件将xml加载到内存中形成一个树状的数据结构,可以利用XPath语言对其进行查询。 首先需要创建一个MSxml2.DOMDocument的对象,如下: var xmlDoc = new ActiveXObject("MSxml2.DOMDocument");,如果是ie5以上版本可以这样:CreateObject(“Microsoft.XMLDom); 创建了dom对象以后就可以用它加载一个xml文件或一段xml字符串,如下: var strFilePath = “file.xml”; xmlDoc.load(strFilePath);//加载xml文件 var strXml = “”; xmlDoc.loadXml(strXml);//加载xml字符串当然还可以创建一个空的DOCDocument,然后向里面填写内容。首先要创建xml的头(),如下: var = xmlDoc.createProcessingInstruction("xml","version='1.0'"); xmlDoc.appendChild(head); 接下来为xml创建节点,如下: var rootNode = xmlDoc.createNode("1","Hello",""); //参数1-节点类型;参数2-节点名称;参数3-节点的命名空间为节点创建属性, var attribut = xmlDoc.createAttribute("Name");//参数-属性名称 Attribute.value = “programer”;//为属性赋值 rootNode.setAttributeNode(attribut);//将属性附加到节点上为节点添加文本值, rootNode.value = “Who am I”; 可以直接创建一个文本节点作为当前节点的子节点 rootNode.appendChild(xmlDoc.createTextNode(“Who am I”)); 将节点添加到DOCDocument xmlDoc.appendChild(rootNode); 当然还可以为一个节点创建子节点,如下 rootNode.appendChild(xnChileNode); 利用XPath查找节点,也可以查找节点集 Var myNode = xmlDoc.selectSingleNode(“//Hello/Node[@Text=’Who’]”); //查找目标的根节点的节点名为Hello,这条语句查询的是Hello节点下的节点名为Node的节点中Text属性 //等于”Who”的节点 Var myNodeList = xmlDoc.selectNodes(“//Hello/Node); //查询Hello节点下的全部Node节点 删除节点,删除时只能删除某一个节点下的子节点,而不能直接删除孙节点。 Var myNode = xmlDoc.selectSingleNode(“//Hello/Node[@Text=’Who’]”); Var helloNode = xmlDoc.selectSingleNode(“//Hello”); xmlDoc.removeChild(myNode);//错误 xmlDoc.removeChild(helloNode);//正确 helloNode.removeChild(myNode);//正确 保存结果。可以将xmlDoc中的内容保存到文件中,也可以直接获取它的xml字符串,如下: xmlDoc.save(strFilePath);//保存到文件 alert(xmlDoc.xml);//输出xml字符串
原创粉丝点击