Java XML递归解析查找元素
我有一个XML,但我所知道的只是我想找到其值的元素的名称。也就是说,我无法使用XPath轻松检索元素。我必须递归地处理XML,但我似乎失败了。我试过的是:
假设XML具有以下结构:
<Store id="1">
...
<Customer>
<CustomerId>123</CustomerId>
</Customer>
</Store>
我想得到CustomerId标签的值。实际上,我不知道CustomerId标记在XML中的什么位置。我尝试了以下递归:
private String parseXmlForCustomerId(Element element) {
if (element.getNodeName().equals("CustomerId")) {
return element.getTextContent();
}
NodeList children = element.getChildNodes();
for (int i = 0; i < children.getLength(); i++) {
Node node = children.item(i);
if (node.getNodeType() == Node.ELEMENT_NODE && parseXmlForCustomerId((Element) node).equals("CustomerId")) {
return node.getTextContent();
}
}
return "";
}
我做错了什么
提前谢谢
# 1 楼答案
应该是:
然而XPath是可能的
# 2 楼答案
基于nodeTagName编写了一个可重用的方法来解析xmlRecords中的TagValue
# 3 楼答案
Xpath应该使用