JS 操作XML

  <! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >
< html  xmlns ="http://www.w3.org/1999/xhtml"   >
< head >
    
< title > js操作xml </ title >
    
< script  type ="text/javascript" >
        
var  iIndex  =   - 1 ;
        
var  objectDoc  =   new  ActiveXObject( " MSXML2.DOMDocument.3.0 " );
        objectDoc.load(
" root.xml " );
        
var  objectItem  =  objectDoc.selectNodes( " /Root/Item " );
        
function  getNode(objectDoc, strPath);
        {
            
var  returnValue = "" ;
            
var  strValue  =  objectDoc.selectNodes(strPath);
            
if (strValue)
            returnValue 
=  strValue.Text;
            
return  returnValue;
        }
        
function  getDataNext()
        {
            iIndex
++ ;
            
if (iIndex >  objectItem.length  - 1
                iIndex 
= 0 ;
            document.forms[
0 ].ProductTag.value = getNode(objectDoc, " /root/item[ " + iIndex + " ]/ProductTag " );
            document.forms[
0 ].Price.value = getNode(objectDoc, " /root/item[ " + iIndex + " ]/Price " );
            document.forms[
0 ].Quantity.value  =  getNode(objectDoc, " /root/item[ " + iIndex + " ]/Quantity " );
            document.forms[
0 ].Total.value  =  getNode(objectDoc, " /root/item[ " + iIndex + " ]/Total " );
        }
        
function  getDataPrev()
        {
            iIndex
-- ;
            
if (iIndex  >  objectItem.length  - 1 )
                iIndex 
= 0 ;
            document.forms[
0 ].ProductTag.value = getNode(objectDoc, " /root/item[ " + iIndex + " ]/ProductTag " );
            document.forms[
0 ].Price.value = getNode(objectDoc, " /root/item[ " + iIndex + " ]/Price " );
            document.forms[
0 ].Quantity.value  =  getNode(objectDoc, " /root/item[ " + iIndex + " ]/Quantity " );
            document.forms[
0 ].Total.value  =  getNode(objectDoc, " /root/item[ " + iIndex + " ]/Total " );
        }
        
        
function  init()
        {
            document.all.XMLTitle.innerText
= getNode(objectDoc, " /root/Cigarette " );
            document.all.XMLDate.innerText 
=  getNode(objectDoc, " /root/Date " );
        }
    
</ script >
</ head >
< body  onload ="init();GetDataNext()" >
    
< form >
        
< div  id ="XMLTitle" ></ div >
        
< br  />
        
< table  border ="0" >
            
< tr >< td > 产品名称 </ td >< td >< input  type ="text"  name ="ProductTag"   /></ td ></ tr >
            
< tr >< td > 产品价格 </ td >< td >< input  type ="text"  name ="Price"   /></ td ></ tr >
            
< tr >< td > 产品数量 </ td >< td >< input  type ="text"  name ="Quantity"   /></ td ></ tr >
            
< tr >< td > 金额合计 </ td >< td >< input  type ="text"  name ="Total"   /></ td ></ tr >
        
</ table >
        
< br  />
        
< div  id ="XMLDate" ></ div >
        
< br  />
        
< input  type ="button"  value ="<<"  onclick ="getDataPrev();"   />
        
< input  type ="button"  value =">>"  onclick ="getDataNext();"   />
    
</ form >
</ body >
</ html >

 

节点对象属性

childNodes—返回节点到子节点的节点列表

firstChild—返回节点的首个子节点。

lastChild—返回节点的最后一个子节点。

nextSibling—返回节点之后紧跟的同级节点。

nodeName—返回节点的名字,根据其类型。

nodeType—返回节点的类型。

nodeValue—设置或返回节点的值,根据其类型。

ownerDocument—返回节点的根元素(document对象)。

parentNode—返回节点的父节点。

previousSibling—返回节点之前紧跟的同级节点。

text—返回节点及其后代的文本(IE独有)。

xml—返回节点及其后代的XML(IE独有)。


节点对象的方法

appendChild()—向节点的子节点列表的结尾添加新的子节点。

cloneNode()—复制节点。

hasChildNodes()—判断当前节点是否拥有子节点。

insertBefore()—在指定的子节点前插入新的子节点。

normalize()—合并相邻的Text节点并删除空的Text节点。

removeChild()—删除(并返回)当前节点的指定子节点。

replaceChild()—用新节点替换一个子节点。


IE6独有方法

selectNodes()—用一个XPath表达式查询选择节点。

selectSingleNode()—查找和XPath查询匹配的一个节点。

transformNode()—使用XSLT把一个节点转换为一个字符串。transformNodeToObject()—使用XSLT把一个节点转换成为一个文档

 

 

***********/

 

 

 //***********js操作XML*************
        //*     author:iflash50     *
        //* Email:iflash50@163.com *
        //*********************************
        //针对两种浏览器,分别获取xmlDocument对象
        function loadXML(xmlFile) {
            var xmlDoc;
            if (window.ActiveXObject) {
                xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
                xmlDoc.async = false;
                xmlDoc.load(xmlFile);
            }
            else if (document.implementation && document.implementation.createDocument) {
                xmlDoc = document.implementation.createDocument("", "", null);
                xmlDoc.async = false;
                xmlDoc.load(xmlFile);
            } else {
                alert('你的浏览器不支持xml数据读取');
            }
            return xmlDoc;
        }
        var xmlDoc = loadXML("file.xml");
        var members = xmlDoc.getElementsByTagName("files");
        var maxRes = members.length;
        function getXML() {
            for (var i = 0; i < maxRes; i++) {
                var oName = members[i].getElementsByTagName("name");
                document.getElementById("ShowXML").innerHTML += oName[0].firstChild.nodeValue+"__";          //用oName[0].text,不兼容ff,替换成oName[0].firstChild.nodeValue
            }
        }

 

 

<body οnlοad="getXML()">
       <div id="ShowXML">
       </div>
</body>

 

<?xml version="1.0" encoding="GB2312"?>
<rautinee>
  <files id='1'>
    <name>AAF1</name>
    <size>1000</size>
    <update>2010-03-09 10:55</update>
  </files>
  <files id='2'>
    <name>AD</name>
    <size>20</size>
    <update>11111-03-09 10:55</update>
  </files>
  <files id='3'>
    <name>12312</name>
    <size>10</size>
    <update>3212-03-09 10:55</update>
  </files>
</rautinee>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值