Javascript操作xml

 

          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 = “<?xml,version=1.0?><root><node text=”Name”/></root>”;
 xmlDoc.loadXml(strXml);//加载xml字符串
当然还可以创建一个空的DOCDocument,然后向里面填写内容。
首先要创建xml的头(<?xml,version=’1.0’?>),如下:
 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字符串
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值