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 返回长整型错误文件位置---在文档中的绝对字符位置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值