在xml文件中,有不同级别的同名节点。我如何根据水平或父母来区分
<account email="psuraj@isaacdanielgroup.com" >
<contacts>
<contact>
<id>
0
</id>
</contact>
<contact>
<id>
1
</id>
</contact>
<contact>
<id>
2
</id>
</contact>
</contacts>
<groups>
<group>
<groupname>
xyz
</groupname>
<members>
<contact>
<id>
7
</id>
</contact>
<contact>
<id>
8
</id>
</contact>
</members>
</group>
</groups>
这里我在联系人和群组下有联系 - &gt; group-&gt; memebers 我需要区分它们 如果我尝试
doc.getElementsByTagName("contact");
它将返回所有级别的所有联系节点。 这不是必需的。我需要单独联系下面的联系人和单独的联系人。
请帮忙。
答案 0 :(得分:1)
使用DOM XML技术,您可以通过XPATHExpression提取NodeSet:
String path = "//account/groups/group/members/contact";
XPath xpath = XPathFactory.newInstance().newXPath();
XPathExpression expr1;
try {
expr1 = xpath.compile(path);
return (NodeList)expr1.evaluate(doc, XPathConstants.NODESET);
} catch (XPathExpressionException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return null;
}
这将只返回群组内的联系