javascript解析xml例子
2013-01-25 13:31
357 查看
XML code
HTML code
test.htm
HTML code
<?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>
HTML code
<!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="yixianggao@126.com" /> <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 >==============================================
data.xml XML code [code]<?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 code
<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>
相关文章推荐
- javascript 解析ajax返回的xml和json格式的数据
- dom解析xml小例子
- 简易解析ajax,javascript-XMLHttpRequest,解决乱码问题
- 使用dom4j和XPath解析XML之例子二
- Javascript、ASP解析(远程)XML
- 几个解析XML的例子
- JavaScript 解析读取XML文档
- JavaScript解析XML的方法总结
- javascript对XML的解析
- javascript解析XML的方法
- JavaScript 解析读取XML文档 实例代码(转)
- Javascript -- 级联菜单, javascript解析xml文件
- java digester-jar类解析xml 简单例子
- 解析xml例子
- JavaScript解析XML实现两级级联下拉列表
- JavaScript 解析读取XML文档 实例代码
- 采用DOM4J解析xml,带例子。
- javascript 解析后的xml对象的读取方法细解
- javascript解析返回的xml各式的字符串