Выберите верхний узел с помощью xpath - PullRequest
2 голосов
/ 16 марта 2012

Вот пример XML, с которым я имею дело:

<div>
    <div>
        <table id="table1">
            <div>
                <table id="table2"/>
            </div>
        </table>
    </div>
</div>

Я хочу создать выражение XPath, которое выберет table1 и не выберет table2. Идентификаторы указаны, например, и отсутствуют в исходном документе. Структура этих документов также может быть гораздо более замысловатой. Я хочу выбрать верхнюю таблицу для обработки.

Возможно ли сделать это только с XPath?

Ответы [ 2 ]

4 голосов
/ 16 марта 2012

Это будет работать даже для нескольких таблиц «верхнего уровня»:

//table[not(ancestor::table)]
1 голос
/ 16 марта 2012

Есть несколько способов сделать это:

Некоторые примеры:

/div/div/table

//table[.//table]

(//table)[1]

Я не знаю, как выглядит ваш xml, но все приведенные выше примеры вернут только первую таблицу.

//table[1]  - this one will return both tables.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...