在 java 中使用 DOM 解析器解析 XML 文件时如何找到具有子节点的节点
how to find the node which has child node while parsing XML file using DOM parser in java
我想解析 xml 文档并转换成 json。
我在查找哪个节点有子节点和没有子节点时遇到问题。
示例:
<Bank>
<Account>
<Id>1001</Id>
<Name>Jack Robinson</Name>
<Amt>10000</Amt>
</Account>
</Bank>
在这个 xml 文件中,我想找到第一个 Bank 节点有一个子元素,即 Account ,就像 Account 节点有子节点,即 Id、Name、Amt。
但是Id, Name, Amt节点都没有子节点,所以我想这样查找哪个节点有子节点,哪个节点没有?
我正在尝试使用 node.hasChildNodes() 方法,但每个节点都会 return 为真。
请帮我解决这个问题...
你可以试试
NodeList iDNodes = (Account).getElementsByTagName("Id");
int lengthofID = value1Nodes.getLength();
if(lengthofID > 0){
//..proceed
}
或者类似的是
doc.getChildNodes().item(0).getChildNodes().getLength();
node.hasChildNodes() returns true 因为它发现空文本元素为 child.
所以在你的情况下 Bank 有 child empty text 然后 Account.
一种解决方案是从 XML 中删除格式化元素,然后对其进行解析。
您可以使用 node.getNodeType() == Node.ELEMENT_NODE 检查节点是 空文本 还是元素节点.
我想解析 xml 文档并转换成 json。 我在查找哪个节点有子节点和没有子节点时遇到问题。
示例:
<Bank>
<Account>
<Id>1001</Id>
<Name>Jack Robinson</Name>
<Amt>10000</Amt>
</Account>
</Bank>
在这个 xml 文件中,我想找到第一个 Bank 节点有一个子元素,即 Account ,就像 Account 节点有子节点,即 Id、Name、Amt。 但是Id, Name, Amt节点都没有子节点,所以我想这样查找哪个节点有子节点,哪个节点没有?
我正在尝试使用 node.hasChildNodes() 方法,但每个节点都会 return 为真。
请帮我解决这个问题...
你可以试试
NodeList iDNodes = (Account).getElementsByTagName("Id");
int lengthofID = value1Nodes.getLength();
if(lengthofID > 0){
//..proceed
}
或者类似的是
doc.getChildNodes().item(0).getChildNodes().getLength();
node.hasChildNodes() returns true 因为它发现空文本元素为 child.
所以在你的情况下 Bank 有 child empty text 然后 Account.
一种解决方案是从 XML 中删除格式化元素,然后对其进行解析。
您可以使用 node.getNodeType() == Node.ELEMENT_NODE 检查节点是 空文本 还是元素节点.