JS读取XML文件

通俗的来说互联网的作用就是跟数据打交道:存储、传输、显示、处理。XML作为跨平台的数据存储方式,其地位自然不用多说。

       今天硬着头皮在W3上看了一点儿,记录如下。

       先粘一段代码,免得以后忘了。

[html]  view plain copy
  1. <%@page pageEncoding="UTF-8"%>  
  2. <html>  
  3. <!--   
  4.   - Author(s): wangcc  
  5.   - Date: 2012-05-25 16:07:14  
  6.   - Description:  
  7. -->  
  8. <head>  
  9. <title>测试页</title>  
  10. <script type="text/javascript">  
  11.     var xmlDoc = null;  
  12.     /*将xml文档加入到解析器中*/  
  13.     if (window.ActiveXObject)  
  14.     {  
  15.           // code for IE  
  16.           xmlDoc=new ActiveXObject("Microsoft.XMLDOM");  
  17.     }  
  18.     else if (document.implementation.createDocument)  
  19.     {  
  20.           // code for Firefox, Mozilla, Opera, etc.  
  21.           xmlDoc=document.implementation.createDocument("","",null);  
  22.     }  
  23.     else  
  24.     {  
  25.           alert('Your browser cannot handle this script');  
  26.     }  
  27.     xmlDoc.async=false;  
  28.     xmlDoc.load("cd_catalog.xml");  
  29.     //得到所有CD节点  
  30.     var x = xmlDoc.getElementsByTagName("CD");  
  31. </script>  
  32.   
  33. </head>  
  34. <body ondblclick="display();">  
  35. <div id="show">点击表格显示详情:</div>  
  36. <script type="text/javascript">  
  37.         //输出表格  
  38.         document.write("<table border='1'>");  
  39.         for (var i = 0; i < x.length; ++i)  
  40.         {  
  41.             document.write("<tr id='tr" + i + "' onclick='disDetail(" + i + ")'>");  
  42.             //输出演唱者  
  43.             document.write("<td>"   
  44.                 + x[i].getElementsByTagName("ARTIST")[0].childNodes[0].nodeValue   
  45.                 +  "</td>");  
  46.             //输出专辑名称  
  47.             document.write("<td>"   
  48.                 + x[i].getElementsByTagName("TITLE")[0].childNodes[0].nodeValue   
  49.                 +  "</td>");  
  50.             document.write("</tr>");  
  51.         }  
  52.         document.write("</table>");  
  53. </script>  
  54.   
  55. </body>  
  56.   
  57. <script type="text/javascript">  
  58.   
  59.     /*显示对应行的CD详情*/  
  60.     function disDetail(i)  
  61.     {  
  62.         /*读取CD节点各个属性值*/  
  63.         var artist = "artist: " +  x[i].getElementsByTagName("ARTIST")[0].childNodes[0].nodeValue;  
  64.         var bulm = "bulm: " + x[i].getElementsByTagName("TITLE")[0].childNodes[0].nodeValue;  
  65.         var country = "country: " + x[i].getElementsByTagName("COUNTRY")[0].childNodes[0].nodeValue;  
  66.         var company = "company: " + x[i].getElementsByTagName("COMPANY")[0].childNodes[0].nodeValue;  
  67.         var price = "price: " + x[i].getElementsByTagName("PRICE")[0].childNodes[0].nodeValue;  
  68.         var year = "year: " + x[i].getElementsByTagName("YEAR")[0].childNodes[0].nodeValue;  
  69.         /*将读取的内容显示到DIV中*/  
  70.         document.getElementById("show").innerHTML = artist + "<br>" + bulm + "<br>" + country + "<br>" + company + "<br>" +  
  71.         price + "<br>" + year + "<br>";  
  72.         /*点击一行变化颜色*/  
  73.         var trChange = document.getElementById("tr" + i);  
  74.         if(trChange.style.backgroundColor == 'blue')  
  75.         {  
  76.             trChange.style.backgroundColor = document.bgColor;  
  77.         }  
  78.         else  
  79.         {  
  80.             trChange.style.backgroundColor = "blue";  
  81.         }  
  82.     }  
  83. </script>  
  84.   
  85. </html>  

下面是XML文件的节点示例

[html]  view plain copy
  1.  <?xml version="1.0" encoding="ISO-8859-1" ?>   
  2. <!--  Edited with XML Spy v2007 (http://www.altova.com)  
  3.  -->   
  4. <CATALOG>  
  5. <CD>  
  6.  <TITLE>Empire Burlesque</TITLE>   
  7.  <ARTIST>Bob Dylan</ARTIST>   
  8.  <COUNTRY>USA</COUNTRY>   
  9.  <COMPANY>Columbia</COMPANY>   
  10.  <PRICE>10.90</PRICE>   
  11.  <YEAR>1985</YEAR>   
  12.  </CD>  
  13. <CD>  
  14.  </CATALOG>  

       关键的知识点其实今天没有学到,就是XML DOM。通过它对XML文件的操作(读取、修改、新增节点)才是要点所在。这个任务留待明天吧。

       将XML文件加载到解析器中去的代码可以重复使用,并且做到了浏览器的兼容性验证,十分类似xmlhttprequest那段。

转自:http://blog.csdn.net/wkupaochuan/article/details/7656904

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值