gpt4 book ai didi

java - 想要使用 DOM 遍历 XML 中的层次结构

转载 作者:行者123 更新时间:2023-11-30 08:04:47 27 4
gpt4 key购买 nike

我正在尝试迭代此 XML

<?xml version="1.0" encoding="utf-8"?>
<Document>
<Sitemap>
<TreeMap>
<RootNodes>
<TreeMapNode>
<NodeType>Folder</NodeType>
<NodeValue>fwreference_war</NodeValue><!--component name=project name-->
<ChildNodes>
<TreeMapNode>
<NodeType>Folder</NodeType>
<NodeValue>education</NodeValue><!--packegeName=nodevalue.title-->
<ChildNodes>
<TreeMapNode>
<NodeType>Folder</NodeType>
<NodeValue>editorsample::Mapping</NodeValue><!--title=mapping ; name=editorsample-->
<ChildNodes>
<TreeMapNode>
<NodeType>PackageHandle</NodeType>
<NodeValue>01::inquiry::list</NodeValue><!--sceenName::screenmode::screentype-->
<ChildNodes />
</TreeMapNode>
</ChildNodes>
</TreeMapNode>
</ChildNodes>
</TreeMapNode>
</ChildNodes>
</TreeMapNode>
</RootNodes>
</TreeMap>
</Sitemap>
<Mastermap>
<TreeMap>
<RootNodes />
</TreeMap>
</Mastermap>
<Pages />
<Masters />
</Document>

1) 我想提取每个 <NodeType> 的值里面<sitemap> .

2) 当我尝试从 <sitenode> 迭代时但是当我尝试查找子节点时,结果如下:

 NodeList headerList = doc.getElementsByTagName("Sitemap");
NodeList childNodeList=headerList.item(0).getChildNodes();
//gives 3
NodeList headerList = doc.getElementsByTagName("TreeMap");
NodeList childNodeList=headerList.item(0).getChildNodes();
//gives 3
NodeList headerList = doc.getElementsByTagName("RootNodes");
NodeList childNodeList=headerList.item(0).getChildNodes();
//gives 3
NodeList headerList = doc.getElementsByTagName("TreeMapNode");
NodeList childNodeList=headerList.item(0).getChildNodes();
//gives 8

如何迭代这个层次结构以及为什么上面三个标签给出相同的编号。子节点数,即 3?

最佳答案

你已经接近解决这个问题了。您可以迭代子级并检查它是否是 Node.ELEMENT_NODE

您的元素有 3 个子元素的原因是因为它具有混合内容。标签前有一些空格和换行符。所以基本上每个节点都有 [Node.TEXT_NODE, NODE.ELEMENT_NODE, Node.TEXT_NODE]

列表

关于java - 想要使用 DOM 遍历 XML 中的层次结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31285158/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com