XPath с операторами XPath - PullRequest
       0

XPath с операторами XPath

0 голосов
/ 27 декабря 2018

Мне интересно узнать, есть ли способ добавить XPath как часть операнда при оценке другого XPath.

Рассмотрим следующий XML:

<?xml version="1.0" encoding="UTF-8"?>
<bookStore>
    <bestSellerId>3</bestSellerId>
    <book>
        <bookId>1</bookId>
        <bookName>First Book</bookName>
        <bookAuthor>First Author</bookAuthor>
    </book>
    <book>
        <bookId>2</bookId>
        <bookName>Second Book</bookName>
        <bookAuthor>Second Author</bookAuthor>
    </book>
    <book>
        <bookId>3</bookId>
        <bookName>Third Book</bookName>
        <bookAuthor>Third Author</bookAuthor>
    </book>
    <book>
        <bookId>4</bookId>
        <bookName>Fouth Book</bookName>
        <bookAuthor>Fouth Author</bookAuthor>
    </book>
</bookStore>

Мне нужно получитьbookAuthor бестселлера, который можно определить с помощью bestSellerId.

Я пытаюсь сделать следующее, но не получаю никакого соответствия:

bookStore/book[bookId=bookStore/bestSellerId/text()]/bookAuthor

1 Ответ

0 голосов
/ 27 декабря 2018

Вам просто не хватает /, чтобы добраться до корневого узла.
Таким образом, ваше выражение должно выглядеть так:

bookStore/book[bookId=/bookStore/bestSellerId/text()]/bookAuthor

Вывод:

Third Author
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...