【发布时间】:2016-07-27 15:50:02
【问题描述】:
我正在尝试读取一个简单的 XML 文件,但一方面使用 nodeValue 总是得到 null,另一方面注意到子节点上有一些奇怪的行为。
首先是奇怪的行为: 这是我的 xml:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<productList>
<product>
<productname>Keilspanner</productname>
<artikelnummer>m12.123</artikelnummer>
<productid>2001</productid>
<objname>keilspanner</objname>
<length>6</length>
<width>5</width>
<height>2.5</height>
</product>
<product>
<productname>feste Backe</productname>
<artikelnummer>m12.456</artikelnummer>
<productid>3001</productid>
<objname>festeBacke</objname>
<length>6</length>
<width>4.4</width>
<height>2.5</height>
</product>
<product>
<productname>ClampRail</productname>
<artikelnummer>123</artikelnummer>
<productid>1001</productid>
<objname>clampRail</objname>
<length>40</length>
<width>5</width>
<height>5</height>
</product>
<product/>
</productList>
当我像这样打印出“产品”的所有子节点时:
for(i=0; i<=14; i++){
console.log(xmlDoc.getElementsByTagName("product")[0].childNodes[i]);
};
我明白了:
loadXML.js:22 #text
loadXML.js:22 <productname>Keilspanner</productname>
loadXML.js:22 #text
loadXML.js:22 <artikelnummer>m12.123</artikelnummer>
loadXML.js:22 #text
loadXML.js:22 <productid>2001</productid>
loadXML.js:22 #text
loadXML.js:22 <objname>keilspanner</objname>
loadXML.js:22 #text
loadXML.js:22 <length>6</length>
loadXML.js:22 #text
loadXML.js:22 <width>5</width>
loadXML.js:22 #text
loadXML.js:22 <height>2.5</height>
loadXML.js:22 #text
每个第二个值实际上都是我的 xml 文件的一个子级。
第二个问题:当我打电话时:
xmlDoc.getElementsByTagName("product")[0].childNodes[1].nodeValue;
它总是返回 null。
这是我完整的js:
function readXml() {
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (xhttp.readyState == 4 && xhttp.status == 200) {
myFunction(xhttp);
}
};
xhttp.open("GET", "xml/products.xml", true);
xhttp.send();
}
function myFunction(xml) {
var xmlDoc = xml.responseXML;
for(i=0; i<=14; i++){
console.log(xmlDoc.getElementsByTagName("product")[0].childNodes[i]);
};
console.log(xmlDoc.getElementsByTagName("product")[0].childNodes[1].nodeValue);
}
希望你能帮助我,我是 xml 新手,一开始我就失败了 :D
【问题讨论】:
标签: xml xmlhttprequest