Я хочу передать параметр в выражение XPath.Как передать параметр переменной в выражение XPath?
(//a/b/c[x=?],myParamForXAttribute)
Могу ли я сделать это с помощью XPath 1.0? (Я пробовал string-join
, но его нет в XPath 1.0)
Тогда как я могу это сделать?
Мой XML выглядит
<a>
<b>
<c>
<x>val1</x>
<y>abc</y>
</c>
<c>
<x>val2</x>
<y>abcd</y>
</c>
</b>
</a>
Я хочу, чтобы получить <y>
значение элемента, где значение х элементов val1
Я попытался //a/b/c[x='val1']/y
, но это не сработало.
Если вы используете библиотеку Axiom, вы должны пометить свой вопрос Java и ожидать ответа, который включает в себя некоторую Java. –
Вы начали с одной проблемы (как использовать переменные в выражениях XPath). Я [ответил на это ниже] (http://stackoverflow.com/a/30353346/290085). Теперь вы добавили еще одну проблему (ваш новый XPath, который не использует переменную и пытается выбрать * совершенно другой * элемент, не работает). Добавьте новый вопрос к своей новой проблеме и включите достаточную детализацию и контекст, чтобы воспроизвести вашу проблему - вы этого не сделали. – kjhughes
Кстати, зачем беспокоиться с '// a/b/c'?Если вы перейдете ко всему удару производительности рекурсивного поиска (что глупо, но это то, что вы делаете, когда вы используете '//' вместо '/' для запуска), также можно использовать '// x [. = 'val1'] /../ y', и вам не нужно заботиться о 'a' или' b'. –