javascript - 子节点多个javascript XML

标签 javascript xml dom

尝试从 XML 中提取时无法选择子项 - 在本例中为作者:

<book category="WEB">
<title lang="en">XQuery Kick Start</title>
<author>James McGovern</author>
<author>Per Bothner</author>
<author>Kurt Cagle</author>
<author>James Linn</author>
<author>Vaidyanathan Nagarajan</author>
<year>2003</year>
<price>49.99</price>
</book>

我无法获取 javascript 脚本来显示我选择的作者。意思是如果我这样做。

txt=xmlDoc.getElementsByTagName("title")[2].childNodes[0].nodeValue;
document.write("<p>"+txt);

我得到“詹姆斯·麦戈文”。但是

txt=xmlDoc.getElementsByTagName("title")[2].childNodes[1].nodeValue;
document.write("<p>"+txt);

不会给我“Per Bothner”。我怎样才能使这成为可能?

最佳答案

虽然我也想知道您是如何获得结果的……childNodes 数组不仅包含元素,而且(除其他外)还包含文本节点,即行分隔符 (CR/LF) .因此,您必须遍历数组以检查每个条目的节点类型。更好的选择是使用 xpath 来选择有趣的元素,this article应该让你开始。

具体来说,/book/author 将按文档顺序准确选择 author 节点。

关于javascript - 子节点多个javascript XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14266760/

相关文章:

javascript - 将加密浏览器添加到 Gatsby 项目

javascript - 事件和 DOM 元素

javascript - sinon fakeserver可以发送xml响应吗?

javascript - 为什么不在 2017 年将 Array.prototype 方法添加到 NodeList.prototype 中?

javascript - Npm 安装未完成。我该如何解决这个问题

javascript - 反转月份名称到月份数字的转换

c# - 如果在我的 WPF 项目中找不到 xml 文件,如何编写创建新的 xml?

xml - JAXB 绑定(bind)更改 xs :date to xs:dateTime?

javascript - 设置 useMap 后无法更改图像源

javascript - javascript 中元素函数的可见性不起作用