xmlDoc.getElementsByTagName-多个相同的标签名,是否从某些父级获得一个?

时间:2019-05-08 15:55:39

标签: javascript xml

我正在尝试解析其他XML文件以获取某些信息,但是在文件中有多个相同标签名称,但是它们的数量可能因文件而异,这意味着我不能只添加数字标签,我想以其父母标签为基础,以便仅对某些父母/标签进行解析。


var request = new XMLHttpRequest();
request.onreadystatechange = function() {
   if (this.readyState == 4 && this.status == 200) {
       myFunction(this);
   }
};
request.open("GET", "test.xml", true)
request.send();
function myFunction(xml) {
   var xmlDoc = xml.responseXML;
   var test = xmlDoc.getElementsByTagName("SerialNumber")[0].childNodes[0].nodeValue;
};

我已经了解了Xpath,但似乎无法在我的代码中使用它。

示例中有多个SerialNumber标记,但是我想测试一下,使其仅成为父级“ Storage”下的SerialNumber节点值。

1 个答案:

答案 0 :(得分:0)

Library |__Java mechanism |__Android MVVM wrapper 尝试类似的操作:

myFunction

这使用XPath查询来找到所有function myFunction(xml) { var xmlDoc = xml.responseXML; var resultset = xmlDoc.evaluate('//Storage/SerialNumber', xmlDoc); var nodes = []; var node; while (node !== null) { node = resultset.iterateNext(); nodes.push(node); } // Do what you need to here. console.log(nodes); // For example, to get the first result's text contents: console.log(nodes[0].textContent); }; 元素,它们是所检索的XML文档中SerialNumber节点的子元素。

如果您有一个规范说文档中将永远只有一个Storage父/子组合,则值得检查结果数组的长度,如果不是,则抛出错误。 / p>