我想解析一个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()方法,但它会为每个节点返回true。
请帮我解决这个问题...
答案 0 :(得分:0)
你可以尝试
NodeList iDNodes = (Account).getElementsByTagName("Id");
int lengthofID = value1Nodes.getLength();
if(lengthofID > 0){
//..proceed
}
或类似的是
doc.getChildNodes().item(0).getChildNodes().getLength();
答案 1 :(得分:0)
node.hasChildNodes()返回true,因为它将空文本元素视为子项。
因此,在您的情况下,银行包含子空文,然后帐户。
解决方案是从XML中删除格式化元素,然后解析它。
您可以使用 node.getNodeType()== Node.ELEMENT_NODE 来检查节点是空文本还是元素节点。