如何获得所有的一级嵌套节点在XML?
我正在使用Node.js项目。 我正在使用DOMparsing器。
var parser = new DOMParser(); var xmldoc = parser.parseFromString(xml,"text/xml");
这里XML是string。
我想读取所有的第一级子节点(不在子级节点)。
Node (1) Node (2) Node (3) Node (4)
我坚持阅读节点。 所有的节点都是相同的名称嵌套。
我正在使用querySelectorAll(“节点”)。 它获取所有的嵌套节点。
如何读取所有的第一级子示例:Node2,Node4?
任何一个人帮助我?
提前致谢。
更新:
Node (1) other node ExampleNode ExampleNode Node (2) Node (3) Node (4) ExampleNode
扩大我的评论。
DOMParser可以将存储在string中的XML或HTML源代码parsing为DOM。
一旦我们有一个DOM,那么我们有所有可用的文档方法,包括标准的DOM树遍历。
如何获得所有的一级嵌套节点在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>
您可以使用xpath来获取作为node
元素的直接子 node
元素,例如:
var xmlString = '<node>1<node>2<node>3</node></node><node>4</node></node>'; var doc = new DOMParser().parseFromString(xmlString, 'text/xml'); var result = doc.evaluate('/node/node', doc, null, XPathResult.ANY_TYPE , null); var message = "Direct child nodes in this XML document are: ";//} for(var node = result.iterateNext(); node; node = result.iterateNext()) { message += node.textContent + ", "; } $('#output').text(message);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div id="output"></div>