我有以下 XML
<field label="mapping">
<tuple> <atom label="A"/> <atom label="X"/> </tuple>
<tuple> <atom label="B"/> <atom label="Y"/> </tuple>
<tuple> <atom label="C"/> <atom label="Z"/> </tuple>
</field>
当我知道另一个节点的标签时,我想从 a 中选择第二个atom
节点的标签。tuple
atom
例如,如果我知道atom
带有标签 A 的原子,我想得到带有标签 X 的原子。
我写了这个 XPath 表达式,但它没有解决问题:
//following-sibling::field[@label = 'mapping']/tuple/atom[@label = 'A']
如果我写
XPath expr = xpath.compile("//following-sibling::field[@label = 'mapping']/tuple/atom[@label = 'A']");
NodeList nodes = ((NodeList) expr.evaluate(doc, XPathConstants.NODESET));
for (int j=0;j<nodes.getLength();j++){
String label = nodes.item(j).getAttributes().getNamedItem("label").getNodeValue();
}
label
当我期望它是 X 时,变量是 A。
我究竟做错了什么?