首先我注意到你XML
的无效。
假设您的 XML 如下所示。
XML:
<Root>
<SubOne>
<book author="george"/>
<indiv name="abc"/>
<indiv name="khh"/>
<indiv name="ioo"/>
</SubOne>
<SubTwo>
<book author="hamle"/>
<indiv name="kok"/>
<indiv name="ppp"/>
</SubTwo>
</Root>
路径:
对于@author='george'
,使用这个 XPATH:
//*[book[@author='george']]/indiv
对于@author='hamle'
,使用这个 XPATH:
//*[book[@author='hamle']]/indiv
对于两个 XPATH,要打印名称,请使用@name
爪哇:
使用 Java,您需要为两个 xpath 实现这种方式
对于@author='george'
,
String xpath = "//*[book[@author='george']]/indiv";
NodeList nl = (NodeList) xpath.evaluate(xpath, xml, XPathConstants.NODESET);
for (int i = 0; i < nodes.getLength(); i++) {
System.out.println(nodes.item(i).getAttributes().getNamedItem("name").getNodeValue());
}
对于@author='hamle'
,
String xpath = "//*[book[@author='hamle']]/indiv";
NodeList nl = (NodeList) xpath.evaluate(xpath, xml, XPathConstants.NODESET);
for (int i = 0; i < nodes.getLength(); i++) {
System.out.println(nodes.item(i).getAttributes().getNamedItem("name").getNodeValue());
}