用javascript讀取xml檔案讀取節點資料,javascriptxml

來源:互聯網
上載者:User

用javascript讀取xml檔案讀取節點資料,javascriptxml

下面代碼是讀取的節點資料,還有一種情況是讀取節點屬性資料。

<head>  <title></title>  <script type="text/javascript">    var objLength = null;    var xmlHttp;    var strurl = "";    function ajaxrequst() {      if (window.ActiveXObject) {        xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");      }      else {        xmlHttp = new XMLHttpRequest();      }      try {        strurl = "/data/rdzz.xml";        xmlHttp.onreadystatechange = LoadXmlFile;        xmlHttp.open("GET", strurl + "?time=" + (new Date()).getTime(), true);        xmlHttp.send(null);      }      catch (e) {      }    }    function LoadXmlFile() {      var content = "";      if (xmlHttp.readyState == 4) {        if (xmlHttp.status == 200) {          var xmlDOM = xmlHttp.responseXML;          var xmlRoot = xmlDOM.documentElement;          try {            var objLength = xmlRoot.getElementsByTagName("Item");            for (var i = 0; i < objLength.length; i++) {              var elementtitle = objLength[i].getElementsByTagName('NewsTitle')[0];              var elementtime = objLength[i].getElementsByTagName('NewsTime')[0];              var elementurl= objLength[i].getElementsByTagName('NewsUrl')[0];// LastValue = objLength[i].getAttribute( "LastValue" )// Prediction = objLength[i].getAttribute( "Prediction" )// Actual = objLength[i].getAttribute( "Actual" )// importance = objLength[i].getAttribute( "importance" )// newstime = objLength[i].getAttribute( "NewsTime" )              var title = elementtitle.textContent || elementtitle.text;              var time = elementtime.textContent || elementtime.text;              var url = elementurl.textContent || elementurl.text;              content += "<li><dl><dd>" + time + "</dd><dd><a href='" + url + "' target='blank'>" + title + "</a></dd></dl></li>";            }            document.getElementById("newsInfo").innerHTML = content;          }          catch (e) {          }        }      }    }  </script></head>  <body>    <input id="Button1" type="button" value="read" onclick="ajaxrequst()" />    <div id="newsInfo"></div>  </body>

javascript讀取xml檔案

不要用childNodes[x] 去取,會弄的你頭暈腦脹,不知道選到哪個節點。用 selectSingleNode(xPath)來解決
比如你讀不出來的那個第三個節點。。。
var xn = xmlDoc2.documentElement.selectSingleNode("ChannelState/Record") ;
alert(xn.text) ;
如果要取 Signal 節點,那就是
xmlDoc2.documentElement.selectSingleNode("ChannelState/Signal") ;
就可以了。這樣的寫法清晰明了得多。而且如果你在 channelState節點前面加入了其他節點的話,也不會影響到你的代碼。
這個xPath就是路徑,從最左邊開始根節點下的節點的名字,然後一層層寫下去,跟檔案夾的路徑差不多。
 
javascript 讀取xml 資料

///////////////////////////////////////////////////////////
首先:xml檔案(tree.xml)內容如下:
<?xml version="1.0" encoding="gb2312"?>
<treeview>
<tree id="p1">
<text>山東省</text>
<target>_blank</target>
<title>省份</title>
<link></link>
<tree id="p1-1">
<text>威海市</text>
<target>_blank</target>
<title>城市</title>
<link></link>
</tree>
<tree id="p1-2">
<text>煙台市</text>
<target>_blank</target>
<title>城市</title>
<link></link>
<node id="p1-2-1">
<text>長夼村</text>
<target>_blank</target>
<title>鄉鎮</title>
<link>www.baidu.com/</link>
</node>
</tree>
<node id="p1-3">
<text>富鎮</text>
<target>_blank</target>
<title>鄉鎮</title>
<link>......餘下全文>>
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.