Родительский термин в xpath

Что именно означает это выражение

//parent::h4[@style='text-align:center;margin:5px;]//a[contains(text(),'Testing')]

когда я пытаюсь выполнить, он извлекает сам дочерний элемент, тогда какой здесь родительский термин. Это правильный способ написания выражения xpath?

также, если я выполняю // h4 [@ style = 'text-align: center; margin: 5px;] // a [contains (text (),' Testing ')], здесь тоже он указывает на элемент.

Означает ли это, что вышеприведенный родительский термин избыточен?

Не могли бы вы предоставить соответствующий блок HTML?

Andrei Suvorkov 10.08.2018 15:16

Думаю, в этом случае //parent::h4 не имеет смысла, потому что это то же самое, что и просто //h4. Поделиться образцом HTML вместе с текущим и ожидаемым результатом

Andersson 10.08.2018 15:23

Первая часть выбирает любой узел, родительский элемент которого является элементом h4 с этим атрибутом стиля. Второй выберет любой дочерний элемент a этого узла или узлов с 'Testing' в его содержимом.

chrisis 10.08.2018 15:51

@chrisis, я думаю, ваша вторая часть права, но согласно первой части она не берет родительский элемент элемента h4, а только элемент h4. i, e, если я поменяю местами и напишу // a [contains (text (), 'Testing')] // parent :: h4 [@ style = 'text-ali‌ gn: center; margin: 5px‌;], это выбирает родительский элемент, который является h4, и это нормально. если я сначала включаю родительский элемент, поскольку в моем вопросе он просто принимает элемент. Избыточен ли родительский термин? Был ли мой вопрос

codingirl 10.08.2018 15:59

Я предполагаю, что вы хотите найти h4, перейти к его родительскому элементу и затем выбрать под ним //a, так что это будет //h4[@style='text-align:center;margin:5px;]/..//a[contains(t‌​ext(),'Testing')].

Kiril S. 10.08.2018 16:11

см .: w3schools.com/xml/xpath_axes.asp

theGuy 10.08.2018 16:32
//parent::h4 - это совершенно правильный и содержательный XPath; он выбирает все элементы h4, у которых есть хотя бы один дочерний элемент. Это эквивалентно выражению //h4[child::node()].
Michael Kay 10.08.2018 19:21
0
7
38
0

Другие вопросы по теме