[原]JavaScript 讀取XML 通用類 相容IE與眾瀏覽器

來源:互聯網
上載者:User

XMLDOM能很好的處理XML文檔,但是IE和Firefox等瀏覽器存在相當大的差異,此類綜合了處理方法,使之相容於各瀏覽器

本類基於XML DOM,只處理了各瀏覽器之間不相容的部份,並不能完整應用於XML處理,使用之前你必須瞭解XML DOM,相關資料請查閱網路

本類方法:

  • XML.load(url) 載入XML檔案 返回XML對象
  • XML.loadXML(XMLString) 載入XML字串 返回XML對象
  • XML.childNodes(node)  取得一個node的子節點 返回對象數組 //主要是過濾了Firefox中討厭的空節點
  • XML.xml(node) 取得一個node的格式化文本 返回string //就是IE.xml了,FF中沒有此方法
  • XML.text(node) 取得一個node的值 返回string //FF中也沒有此方法
  • XML.selectSingleNode(node,xpath) 利用xpath取得node下面第一個匹配的節點 返回node對象 //各有方法統一到IE的DOM中
  • XML.selectNodes(node,xpath) 利用XPath取得node下面所有匹配的節點 返回node對象集 //各有方法統一到IE的DOM中
三省市聯動的樣本 <script src="jquery.js"></script>
  <script src="xml.js"></script>
<style type="text/css">
 select {width:150px}
</style>
<script type="text/javascript">
<!--
$(function(){

 var xml=XML.load("city1.xml");
 var xmldoc=xml.documentElement;//根層
 var nodes=XML.selectNodes(xmldoc,"//Item[@pid='0']");//取xpath節點
for(var i=0;i<nodes.length;i++)
      $("<option/>").val(nodes[i].getAttribute("id")).text(nodes[i].getAttribute("value")).appendTo($("select[name='addr1']"));
 $("select[name='addr1']").change(function(){
    // 聯動第二層
    select_change(this.value,'addr2');
      $("select[name='addr2']").change();
 });
 $("select[name='addr2']").change(function(){
    //聯動第三層  
    select_change(this.value,"addr3");
 });
 $("select[name='addr1']").change();
 $("select[name='addr2']").change();
 function select_change(value,o){
      $("select[name='"+o+"']").empty();
      var nodes=XML.selectNodes(xmldoc,"//Item[@pid='"+value+"']");
      for(var i=0;i<nodes.length;i++)
           $("<option/>").val(nodes[i].getAttribute("id")).text(nodes[i].getAttribute("value")).appendTo($("select[name='"+o+"']"));
 
 };
});
//-->
</script>
 </head>
 <body>
<select name="addr1"></select>
<select name="addr2"></select>
<select name="addr3"></select>

 

下載點這裡

示範點這裡

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.