我正在尝试构建和XPath查询以根据另一个元素的属性选择元素。我的XML是这样的:基于XML其他属性的XPath高级搜索
<datadoc>
<data>
<molecule coorddimension="3">
<properties>
<property name="Mol2_MolInfo_Name" type="stringvalue">
<val>ZINC01532215_1</val>
</property>
</properties>
<atom key="0" element="6" x="8.2965" y="42.3268" z="14.1097">
<properties>
<property name="AtomName" type="stringvalue">
<val>C1</val>
</property>
</properties>
</atom>
<atom key="9" element="6" x="7.3131" y="43.2537" z="13.9462">
<properties>
<property name="AtomName" type="stringvalue">
<val>C10</val>
</property>
</properties>
</atom>
<bond atomref1="0" atomref2="9" type="double">
<properties>
<property name="BondSybylType" type="stringvalue">
<val>ar</val>
</property>
</properties>
</bond>
</molecule>
</data>
</datadoc>
基本上我想要的是选择哪个@key属性由邦德@引用atomref1Ÿ@ atomref2债券的属性了Atom。就是这样,在Bond节点中,获取该Bond引用的Atom元素。
我想什么是这样的:
../atom[@key = ./@atomref1]
我用..因为当我做我在邦德节点查询,但似乎并没有工作。任何想法,如果可以用XPath完成?
谢谢。
如果可以,请发布您的Java代码或其摘录。另外,发布一个“更复杂”的XML提取,带有多个'bond' –