Javascript XML对象 - 未定义

时间:2017-02-08 17:42:10

标签: javascript xml xml-parsing

以下代码带回了我的ID。

var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
  if (this.readyState == 4 && this.status == 200) {
    myFunction(this);
  }
};
xhttp.open("GET", "https://brewslocal.com/brewery-images-xml", true);
xhttp.send();

function myFunction(xml) {
  var xmlDoc = xml.responseXML;
  document.getElementById("photoBox").innerHTML = xmlDoc.getElementsByTagName("image")[0].id;
}
<div id="photoBox"></div>

当我更改为下一个属性imageurl时,它返回undefined。

var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
  if (this.readyState == 4 && this.status == 200) {
    myFunction(this);
  }
};
xhttp.open("GET", "https://brewslocal.com/brewery-images-xml", true);
xhttp.send();

function myFunction(xml) {
  var xmlDoc = xml.responseXML;
  document.getElementById("photoBox").innerHTML = xmlDoc.getElementsByTagName("image")[0].imageurl;
}
<div id="photoBox"></div>

有什么想法吗?

2 个答案:

答案 0 :(得分:4)

您可以使用Element.getAttribute('attributeName')从此自定义HTML元素中获取属性值。

function myFunction(xml) {
  var xmlDoc = xml.responseXML;
  document.getElementById("photoBox").innerHTML = xmlDoc.getElementsByTagName("image")[0].getAttribute('imageurl');
}

答案 1 :(得分:0)

你可以这样做

function myFunction(xml) {
var xmlDoc = xml.responseXML;
var x = xmlDoc.getElementsByTagName('title')[0];
var y = x.childNodes[0];
document.getElementById("demo").innerHTML =
y.nodeValue; 

}