javascript - 如何在 JavaScript 中使用 DOMParser 读取子元素的属性

标签 javascript html xml dom domparser

我有这个 xml

<zone name="main">
        <card number="4" price="0" name="Urza's Tower"/>
        <card number="4" price="0" name="Urza's Power Plant"/>
        <card number="4" price="0" name="Urza's Mine"/>
        <card number="4" price="0" name="Urza's Avenger"/>
        <card number="1" price="0" name="Urza's Miter"/>
        <card number="4" price="0" name="Howling Mine"/>

我想读取名称属性。我尝试了这个,但它不起作用:

 var cards = xmlDoc.getElementsByTagName("zone")[0].childNodes;
      for (var i = 0; i < cards.length; i++) {
        console.log(cards[i].getAttribute("name"));
      }

当我在调试器中查看cards[i]时,它会显示所有属性。我似乎无法访问它们...

谢谢!

最佳答案

问题中的代码使用 .childNodes因此它不仅获取 card 元素节点,还获取 card 元素之间的文本节点。

要仅获取 card 元素节点,请使用 .children相反,像这样:

 var cards = xmlDoc.getElementsByTagName("zone")[0].children;
      for (var i = 0; i < cards.length; i++) {
        console.log(cards[i].getAttribute("name"));
      }

关于javascript - 如何在 JavaScript 中使用 DOMParser 读取子元素的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40901486/

相关文章:

javascript - Protractor 脚本太快并且未处理覆盖上的元素

javascript - Ui Bootstrap (angularjs) sidenav 无法按预期工作

javascript - 使用模拟时的单元测试断言

javascript - 子进程没有被 Node.JS 杀死

javascript - 为什么 Canvas 在圆(弧)之间画线?

java - 使用第一行文本值java获取第二行xml

html - 使用 flexbox 固定左侧栏

html - 自定义库组件不是已知元素,但应用程序编译并运行

Android:如何从 strings.xml 中获取值到 ListView 中?

java - NameNotFoundException : Name is not bound in this Context. 无法找到