各位好人.谁有.javascript解吸xml最简单的例子.小弟急求~

解决方案 »

  1.   

    L@_@K
    <?xml version="1.0" encoding="utf-8"?>
    <Order>
        <Account>9900234</Account>
        <Item id="1">
            <SKU>1234</SKU>
            <PricePer>5.95</PricePer>
            <Quantity>100</Quantity>
            <Subtotal>595.00</Subtotal>
            <Description>Super Widget Clamp</Description>
        </Item>
        <Item id="2">
            <SKU>6234</SKU>
            <PricePer>22.00</PricePer>
            <Quantity>10</Quantity>
            <Subtotal>220.00</Subtotal>
            <Description>Mighty Foobar Flange</Description>
        </Item>
        <Item id="3">
            <SKU>9982</SKU>
            <PricePer>2.50</PricePer>
            <Quantity>1000</Quantity>
            <Subtotal>2500.00</Subtotal>
            <Description>Deluxe Doohickie</Description>
        </Item>
        <Item id="4">
            <SKU>3256</SKU>
            <PricePer>389.00</PricePer>
            <Quantity>1</Quantity>
            <Subtotal>389.00</Subtotal>
            <Description>Muckalucket Bucket</Description>
        </Item>
        <NumberItems>1111</NumberItems>
        <Total>3704.00</Total>
        <OrderDate>07/07/2002</OrderDate>
        <OrderNumber>8876</OrderNumber>
    </Order><!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>jsLoadXml.html</title>
        <meta name="generator" content="editplus" />
        <meta name="author" content="Gao YiXiang" />
        <meta name="email" content="[email protected]" />
        <meta name="keywords" content="javascript dhtml dom" />
        <meta name="description" content="I love web development." />
        <script language="JavaScript">
        <!--
    /*
     * 创建 XmlDom 对象实例。
     */
    function createXmlDom()
    {
        var xmlVersions = new Array("MSXML2.DOMDocument.5.0", "MSXML2.DOMDocument.4.0",
                                    "MSXML2.DOMDocument.3.0", "MSXML2.DOMDocument", "Microsoft.XmlDom");    for (var i=0; i<xmlVersions.length; i++)
        {
            try
            {
                var oXmlDom = new ActiveXObject(xmlVersions[i]);            return oXmlDom;
            }
            catch (e) 
            {
                //alert(e.message);
            }
        }    throw new Error("当前系统未安装 MSXML!");
    }
    function getNode(doc, xpath)
    {
        var retval = "";    var value = doc.selectSingleNode(xpath);    if (value) retval = value.text;    return retval;
    }function fillValues(itemIndex)
    {
        document.forms[0].SKU.value = getNode(orderDoc, "/Order/Item[" + itemIndex + "]/SKU");
        document.forms[0].Price.value = getNode(orderDoc, "/Order/Item[" + itemIndex + "]/PricePer");
        document.forms[0].Quantity.value = getNode(orderDoc, "/Order/Item[" + itemIndex + "]/Quantity");
        document.forms[0].Total.value = getNode(orderDoc,"/Order/Item[" + itemIndex + "]/Subtotal");
        document.forms[0].Description.value = getNode(orderDoc, "/Order/Item[" + itemIndex + "]/Description");
    }
    function getDataNext()
    {
        i++;    if (i > items.length) i = 1;    fillValues(i);
    }function getDataPrev()
    {
        i--;    if (i < 1) i = items.length;    fillValues(i);
    }var dataSource = "order.xml";var orderDoc = createXmlDom();orderDoc.load(dataSource);// 通过 XPath 方式读取全部订单项!
    var items = orderDoc.selectNodes("/Order/Item");var i = 0;
        //-->
        </script>
    </head>
    <body onload="getDataNext();">
        <h2>
            XML Order Database</h2>
        <form>
            <table border="0">
                <tr>
                    <td>
                        SKU</td>
                    <td>
                        <input type="text" name="SKU"></td>
                </tr>
                <tr>
                    <td>
                        Price</td>
                    <td>
                        <input type="text" name="Price"></td>
                </tr>
                <tr>
                    <td>
                        Quantity</td>
                    <td>
                        <input type="text" name="Quantity"></td>
                </tr>
                <tr>
                    <td>
                        Total</td>
                    <td>
                        <input type="text" name="Total"></td>
                </tr>
                <tr>
                    <td>
                        Description</td>
                    <td>
                        <input type="text" name="Description"></td>
                </tr>
            </table>
            <input type="button" value="  <<  " onclick="getDataPrev();">
            <input type="button" value="  >>  " onclick="getDataNext();">
        </form>
    </body>
    </html>
      

  2.   

    Microsoft.XMLDOM
      

  3.   

    data.xml
    <?xml version="1.0" encoding="gb2312"?>
    <employees>
      <employee name="J.Doe"><job>Programmer</job><salary>32768</salary></employee>
      <employee name="A.Baker"><job>Sales</job><salary>70000</salary></employee>
      <employee name="Big Cheese"><job>CEO</job><salary>1000000</salary></employee>
    </employees>test.htm
    <html>
    <head>
    <title>Employee Data</title>
    <style>   
      tr.hl{   
      background:#08246B;   
      color:white;   
      }   
      </style>  
    <script>
    function loadXML(url,handler)
    {
      if(document.implementation&&document.implementation.createDocument)
    {
      var xmldoc=document.implementation.createDocument("","",null);
      xmldoc.onload=function(){handler(xmldoc,url);}
      xmldoc.load(url);
    }
    else if(window.ActiveXObject)
    {
      var xmldoc=new ActiveXObject("Microsoft.XMLDOM");
      xmldoc.onreadystatechange=function(){if(xmldoc.readyState==4)handler(xmldoc,url);}
      xmldoc.load(url);
    }
    }
    function makeTable(xmldoc,url)
    {
    var table=document.createElement("table");
    table.setAttribute("id","tab");
    table.setAttribute("border","1");
    table.setAttribute("width","500");
    document.body.appendChild(table);
    table.createCaption().appendChild(document.createTextNode("Employee Data from  "+url));
    var header=table.createTHead();
    var headerrow=header.insertRow(0);
    headerrow.insertCell(0).appendChild(document.createTextNode("Name"));
    headerrow.insertCell(0).appendChild(document.createTextNode("Job"));
    headerrow.insertCell(0).appendChild(document.createTextNode("Salary"));
    var es=xmldoc.getElementsByTagName("employee");
    for(var i=0;i<es.length;i++)
    {
     var e=es[i];
     var name=e.getAttribute("name");
     var job=e.getElementsByTagName("job")[0].firstChild.data;//"firstChild.data" is all right
     var sal=e.getElementsByTagName("salary")[0].firstChild.nodeValue;
     var row=table.insertRow(i+1);
     row.insertCell(0).appendChild(document.createTextNode(name));
     row.insertCell(1).appendChild(document.createTextNode(job));
     row.insertCell(2).appendChild(document.createTextNode(sal));
    }
    }var index=0;
    document.onkeydown=function(e)
    {
    e=e?e:window.event;
    var tb=document.getElementById('tab');
    if(tb==null)return;
    loseHightLight(tb);
    switch(e.keyCode)
    {
    case 38:
      index--;
      if(index<0)
      index=tab.rows.length-1;
      tb.rows[index].className="hl";
      break;
    case 40:
      index++;
      if(index>tab.rows.length-1)
      index=0;
      tb.rows[index].className="hl";
      break;
    }
    }
    function loseHightLight(tb)
    {
    for(var i=0;i<tb.rows.length;i++)
    {tb.rows[i].className="";}
    }
    </script>
    </head>
    <body onload="loadXML(location.search.substring(1),makeTable)">
    </body></html>
      

  4.   

    这个内容少,看看
    <script type="text/javascript">
    function Load()
    {
     var xml="<?xml version=\"1.0\" encoding=\"UTF-8\"?>"; 
     xml+="<Song>"; 
     xml+="<Item   ID=\"1\">xmlxmlxmlxmlx </Item>"; 
     xml+="<Item   ID=\"2\">xmlxmlxmlxmlx </Item>"; 
     xml+="<Item   ID=\"3\">xmlxmlxmlxmlx </Item>"; 
     xml+="<Item   ID=\"4\">xmlxmlxmlxmlx </Item>"; 
     xml+="</Song>";var result = xml; if(window.ActiveXObject)
     {
      xmlDoc = new ActiveXObject("Msxml2.DOMDocument");
      xmlDoc.loadXML(result);
     }
     else
     {
       parser = new DOMParser();
       xmlDoc = parser.parseFromString(result,"text/xml");
     }//读取属性
      var properties = xmlDoc.getElementsByTagName("Item"); 
      //方法一
      var ID = properties.item(0).attributes(0).value;
      //方法二
      var ID2 = properties.item(0).getAttribute("ID");
      alert(ID);
    //读取内容
      var xmlValue= properties[0].childNodes[0].nodeValue;
      alert(xmlValue);
      
      //追加
      var node = properties.item(3).previousSibling;
      
      //得到父节点
      //方法一
      var pnode = properties.item(2).parentNode;
      pnode.appendChild(node);
      //方法二
      //var pnode2 = xmlDoc.getElementsByTagName("Song");
      //pnode2[0].appendChild(node);
      
      alert(xmlDoc.xml);
      
      //删除
      pnode.removeChild(node); }
    </script>