javascript - 如何获取xml中所有的一级嵌套 Node ?

标签 javascript xml node.js

我正在使用 Node.js 项目。我正在使用 DOM 解析器。

    var parser = new DOMParser();
    var xmldoc = parser.parseFromString(xml,"text/xml");

这里 XML 是字符串。

我想读取所有第一级子 Node (不在子级 Node 中)。

 Node (1)
    Node (2)
       Node (3)
    Node (4)

我被阅读 Node 困住了。所有 Node 同名且嵌套。

我正在使用querySelectorAll(“Node”)。它获取所有嵌套 Node 。

如何读取所有第一级子示例:Node2、Node4?

有人可以帮助我吗?

提前致谢。

更新:

  Node (1)
       other node
       ExampleNode
           ExampleNode
       Node (2)
           Node (3)
       Node (4)
       ExampleNode

最佳答案

扩展我的评论。

DOMParser可以将存储在字符串中的 XML 或 HTML 源解析为 DOM。

一旦我们有了 DOM,那么我们就拥有了所有 document我们可以使用的方法,包括标准的 DOM 树遍历。

How to get all the first level nested node in xml?

通过DOM遍历

var xmlString = '<node>(1)<node>(2)<node>(3)</node></node><node>(4)</node></node>',
    parser = new DOMParser(),
    xmldoc = parser.parseFromString(xmlString, 'text/xml'),
    firstLevel = xmldoc.children[0].children,
    pre = document.getElementById('out');

pre.textContent = 'Number of first level nodes: ' + firstLevel.length + '\n';
[].forEach.call(firstLevel, function (node) {
    pre.textContent += 'node text: ' + node.firstChild.textContent + '\n';
});
<pre id="out"></pre>

据我所知,当前的 CSS 选择器 API 无法做到这一点,而且没有额外的标记也是如此。

如果选择器是必须的,那么您可以使用第三方库(例如 jQuery)来扩展 CSS 选择器 API。

var xmlString = '<node>(1)<node>(2)<node>(3)</node></node><node>(4)</node></node>',
    xmldoc = $.parseXML(xmlString),
    $firstLevel = $('node:first > node', xmldoc),
    $pre = $('#out');

$pre.append('Number of first level nodes: ' + $firstLevel.length + '\n');
$.each($firstLevel, function (index, node) {
    $pre.append('node text: ' + $(node).contents().eq(0).text() + '\n');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<pre id="out"></pre>

关于javascript - 如何获取xml中所有的一级嵌套 Node ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30752712/

相关文章:

c# - 使用 Linq [C#] 加载重复命名的 XML 节点

javascript - 如何使用nodejs调度任务?

node.js - Nodejitsu上的Socket Hang Up,什么意思?

javascript - 从 for 循环内的 div 列表中获取变量到 onClick()

javascript - 前端 : Internet Explorer problems

javascript - 无法使用 Selenium 获取元素的文本

php - SimpleXML 子属性在有和没有命名空间时表现不同

java - 用java解析xml文档

angularjs - Karma 单元测试 webpack :API fatal error handler returned after process out of memory

Javascript设置日期格式包括0和日期和月份