Поиск всех элементов-потомков, родительский элемент которых не имеет этого класса CSS - PullRequest
1 голос
/ 04 ноября 2019

Я пытаюсь получить всех детей, у которых есть определенный класс, а родитель этого родителя не имеет определенного класса.

Я пытаюсь подобный код, но он не работает.

$hrefs = $xpath->evaluate("//div[not contains(@class, 'tested-app-section')]/div[@class='product-container-body']/div");

Структура HTML, с которым я работаю и который нужно немного отредактировать, выглядит следующим образом, другое содержимое HTML в <body> не имеет значения. (<body> содержит больше, чем просто этот блок HTML):

<body>
  <div class="product-detail-section tested-app-section">
    <div class="product-container-head"> ... </div>
    <div class="product-container-body"> ... </div>
    <div class="product-container-body"> ... </div>
  </div>
  <div class="product-detail-section publish-app-section">
    <div class="product-container-head"> ... </div>
    <div class="product-container-body"> ... </div>
    <div class="product-container-body"> ... </div>
  </div> 
  <div class="product-detail-section product-specific-section">
    <div class="product-container-head"> ... </div>
    <div class="product-container-body"> ... </div>
    <div class="product-container-body"> ... </div>
  </div>

Я пытаюсь в результате избежать самого первого <div> блока (блока с классом "tested-app-section"), затем япытаясь избежать всего, что происходит с классом "product-container-head".

Но я просто не могу найти способ, как это сделать.

Редактировать: Итак, в основном я пытаюсь получить

/html/body/div[contains(@class, 'product-detail-section') AND not contains(@class, 'tested-app-section')]/div[not(@class='product-container-head')]

но этот код ничего не возвращает ...

1 Ответ

0 голосов
/ 04 ноября 2019

Вы близки, но пропустили несколько вещей. Попробуйте это выражение xpath и посмотрите, работает ли оно:

//div[not(contains(@class, 'tested-app-section'))]/div[not(@class='product-container-head')]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...