用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>......餘下全文>>