js对xml的操作

[color=red]1.在js中同样有方法可以将字符串转化为xml对象,可以使用如下函数[/color]

function createXml(str){
  if(document.all){
    var xmlDom=new ActiveXObject("Microsoft.XMLDOM")
    xmlDom.loadXML(str)
    return xmlDom
  }
  else
    return new DOMParser().parseFromString(str, "text/xml")
}

如果在js端是读取文件,那就更方便了
  var xmlDoc = new ActiveXObject("Msxml2.DOMDocument.3.0");
  xmlDoc.async = false;
  xmlDoc.load("文件路径");
至于操作xml也是很简单,如果会使用jdom或是dom4j的话,操作也是相当方便。
            var domxml=  createXml(Http.responseText);
            var code=domxml.getElementsByTagName("code");
            if(code.item(0).text=="100"){
             var parameter=domxml.getElementsByTagName("parameter");
             identifier=parameter.item(0).attributes.getNamedItem("value").value;
           }
对于节点的值和属性的值获取的方法是不同

1.JAVASCRIPT中的创建对象
var xmlDoc = new ActiveXObject("Microsoft.XMLDOM") 
2.创建解析器对象 
set objXml=CreateObject("Microsoft.XMLDOM") 
objXml.async="false" 
objXml.load("test.xml")     装载xml文件 
3.根据绝对路径装载xml文件
objXml.load(Server.MapPath("test.xml"))  
4.查找某一节点"NewList"
Set objRootsite = xmlDoc.getElementsByTagName("NewList") 
objNextRootsiteName = xmlDoc.getElementsByTagName("NewList").item(0).nodeName 

5.查找某一节点"NewList"
Set objRootsite = objXml.documentElement.selectSingleNode("NewList") 
document.write(objRootsite.nodeName) '当前节点名称 
objNextRootsite = objRootsite.childNodes.item(1) '查找"NewList"的第一子节点 
objNextRootsiteText = objNextRootsite.childNodes.item(1).text '查找"NewList"的第一子节点的节点内容 

6.获取当前节点
xmlChildNode = objXml.documentElement.childNodes
document.Write (xmlChildNode.nodename) '当前节点名称 
document.write (xmlChildNode.text) '当前节点文本内容

7. 将Xml中的文本内容转换为Html中的内容
frm.label.innerText = xmlChildNode.item(1).text
8.获取属性名为name的属性值
xmlChildNode.GetAttributeNode("name").Nodevalue 
9.获取xmlChildNode节点的子节点数量
xmlChildNode.length
10.取出一个节点的属性集合
set objnodes=objXml.documentElement.SelectSingleNode("//people/man").GetAttributeNode("name").attributes 
for each element in objnodes 
response.write element.nodename 属性名 
response.write element.nodevalue 属性值 


xmlDoc.getElementsByTagName("from").item(0).text 

xmlDoc.removeChild objRootsite 删除某个节点 

11.其它一些与错误有关的解析
objXml.parseError 错误接受容器 
objXml.parseError.errorCode 返回长整型错误代码 
objXml.parseError.reason 返回字符串型错误原因 
objXml.parseError.line 返回长整型错误行号 
objXml.parseError.linePos 返回长整型错误行字符位置 
objXml.parseError.srcText 返回错误所在行的源代码 
objXml.parseError.url 返回url装载文档指针---最近一份含有解析错误的XML文档的URL地址 
objXml.parseError.filePos 返回长整型错误文件位置---在文档中的绝对字符位置

你可能感兴趣的:(JavaScript,html,xml,Microsoft)