Я использую Java-приложение на основе Saxon для парсера XPath. Пожалуйста, примите во внимание следующее:
<import>
<record ref="abc">
<id>123</id>
<data>Value<data>
</record>
<record ref="def">
<parent>123</parent>
<data>Value2</data>
</record>
</import>
Мой вариант использования: я перебираю узлы записи и мне нужно найти другой с атрибутом ref, равным значению дочернего родительского узла.
Если текущим узлом является <record ref="def">
, как я могу написать запрос для возврата узла данных в первом узле записи путем сопоставления с /query/record/id/text() = current node/parent/text()
?
Если я выполню этот запрос:
/import/record[id/text() = '123']/data
Тогда я получаю правильный узел данных, но я не могу заменить «123» на значение под родительским узлом?
Я попытался заменить '123' with ./parent/text()
, и пока XPath компилируется, никаких результатов не возвращается.
Спасибо
JB