php xpath выбирает div с классом "A", только если у него есть дочерний элемент с классом "a1" - PullRequest
2 голосов
/ 11 ноября 2010

Учитывая следующий HTML-фрагмент, как я могу выбрать все элементы div с классом a или c, только если у них есть дочерний элемент div с классом a1

Rigth теперь у меня есть следующий запрос xpath:

//div[@id='z']/div[@class='a' or @class='c']

<div id="z">
    <div class="a"><!-- Should be  selected -->
        <div class="a1"></div>
    </div>
    <div class="a">
        <div></div>
    </div>
    <div class="b">
        <div></div>
    </div>
    <div class="a"><!-- Should be  selected -->
        <div class="a1"></div>
    </div>
    <div class="c"><!-- Should be  selected -->
        <div class="a1"></div>
    </div>
</div>

Ответы [ 2 ]

4 голосов
/ 11 ноября 2010

Используйте

//div[(@class='a' or @class='c') and div[@class='a1']]

Всегда избегайте использования //, когда структура XML известна . // часто очень неэффективно, поскольку вызывает обход полного поддерева, верхний элемент которого является контекстным узлом.

3 голосов
/ 11 ноября 2010
/div[@id='z']/div[@class='a' or @class='c'][div[@class='a1']]

прямая ссылка

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