Я пытаюсь построить и запрос XPath для выбора элемента в соответствии с атрибутом другого элемента. Мой XML выглядит следующим образом:XPath расширенный поиск на основе другого атрибута XML
<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>
В основном то, что я хочу, чтобы выбрать Atom, который @key атрибут ссылается Облигацию в @ atomref1 атрибутов у @ atomref2 облигации. Вот и все, находясь в узле Bond, получите элемент Atom, на который ссылается этот Bond.
То, что я пытался что-то вроде этого:
../atom[@key = ./@atomref1]
я использую .. потому что когда я делаю запрос я нахожусь в узле Бонде, но это не похоже на работу. Любые идеи, если это можно сделать с XPath?
Спасибо.
Если вы можете разместить свой код Java или выписку из него. Кроме того, опубликуйте «более сложный» XML-экстракт, с несколькими 'bond' –