我希望脚本在xml(当然在标记内)中找到它说的“ anyword”的位置,然后停止。下面做到了。
var xmlDoc = loadXMLDoc("nhl.xml");
var x = xmlDoc.getElementsByTagName("tagname");
for (var i=0;i<=x.length;i++){
if (x[i].textContent = "anyword") {
var variable = x[i].textContent;
}
}
但是我想更进一步,找到“ anyword”后就可以将“ variable”设置到下一个节点。因此我尝试了类似的操作,它返回了集合中的最后一个元素,而不是下一个。
var xmlDoc = loadXMLDoc("nhl.xml");
var x = xmlDoc.getElementsByTagName("tagname");
for (var i=0;i<=x.length;i++){
if (x[i].textContent = "anyword") {
var variable = x[i+1].textContent;
}
}
所以我再次编辑了最后一行并使其成为
var variable = x[i].nextSibling.textContent;
此返回null。在这里扯我的头发。如果它有助于回答任何问题,如果我把它x[i].nextSibling
放回[Object Text]
有帮助吗?
由x[i].textContent = "anyword"
表示,您是指x[i].textContent == "anyword"
吗?
这是人们常见的问题。现代浏览器(除IE外,基本上所有其他浏览器)都会在元素之间添加文本节点。这些文本节点仅包含空格,并没有太多用处。使用此功能查找下一个节点。
function nextSibling(node) {
do {
node = node.nextSibling;
} while (node && node.nodeType != 1) ;
return node
}
这里得到很好的解释:JavaScript XML Parsing
var xmlDoc = loadXMLDoc("nhl.xml");
var x = xmlDoc.getElementsByTagName("tagname");
for (var i=0;i<=x.length;i++){
if (x[i].textContent = "anyword") {
var variable = x[i+1].textContent;
}
}
我没有详细介绍,但是这对我来说似乎很奇怪:
for (var i=0;i<=x.length;i++)
您是否尝试过
for (var i=0;i<x.length;i++)
• 在 Python 3.6 中 - 使用 XPath 表达式获取文本
• 将lambda_http Body对象转换为字符串类型?
• 有没有一种有效的方法可以根据键值对从对象数组中获取对象的值
• Livewire:如何获取组件当前实例的根 DOM 元素?
• TypeError:无法读取 null 的属性(读取“useEffect”)[重复]
• 如何在 PHP 中没有 foreach 的情况下通过键获取对象项
• Javascript:http请求,如何迭代JSON对象响应
• Karaf,从已部署的 Kar 中获取对象实例,但容易出错,因为无法部署 Kar