Кажется, есть разница в том, как XPath и XQuery выбирают атрибуты. Вот игрушечный пример, украденный из W3Schools:
<?xml version="1.0" encoding="UTF-8"?>
<bookstore>
<book category="cooking">
<title lang="en">Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
<price>30.00</price>
</book>
<book category="children">
<title lang="en">Harry Potter</title>
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>
</bookstore>
Я хочу получить значения атрибутов lang
. Итак, наивно я делаю: //title/@lang
, который отлично работает ... на оценщике XPath, но не на оценщике XQuery.
Что мне нужно , чтобы знать: Как мне написать выражение XPath для работы с оценщиком XQuery?
Что я хочу знать: что происходит?!
Вот часть TL:
Я на устаревшей платформе без этих возможностей, поэтому я отправляю XML и выражение моего запроса во внешнюю службу, которая, на мой взгляд, является саксонским оценщиком XQuery. Мой синтаксис работает, как и ожидалось, в CodeBeautify XPath Tester .
Я также проверил эту разницу на xpathtester.com : он работает, как и ожидалось, в режиме XPath, но не в Режим XQuery. (Примечание: ссылка не зашифрована.).
xpathtester.com возвращает следующее сообщение об ошибке: ERROR - Cannot create an attribute node (lang) whose parent is a document node