PHP DOMDocument Уничтожение вложенного класса - PullRequest
0 голосов
/ 10 апреля 2020

У меня есть HTML такой документ, я хочу удалить все категории и подкатегории, я пытаюсь удалить его с помощью DOMXpath и загрузить документ html, затем отфильтровать класс "css -1qaqbbz" (но только получить категории), который мой ожидаемый массив, как это

[

'Arsitektur & Desain' => [

"Buku Bangunan",

"Buku Коды и стандарты "

// et c ...

],

]

     <div>
        <a class="css-1qaqbbz">Arsitektur &amp; Desain
        </a>
     </div>
     <div class="css-1wode1h">
        <a data-testid="categoryNavigation#1" class="css-1nykm5o">Buku Bangunan</a>
        <a data-testid="categoryNavigation#2" class="css-1nykm5o">Buku Codes &amp; Standars</a>
        <a data-testid="categoryNavigation#3" class="css-1nykm5o">Buku Dekorasi &amp; Ornamen</a>
        <a data-testid="categoryNavigation#4" class="css-1nykm5o">Buku Desain Dapur</a>
        <a data-testid="categoryNavigation#5" class="css-1nykm5o">Buku Desain Kamar</a>
        <a data-testid="categoryNavigation#6" class="css-1nykm5o">Buku Desain Ruang Keluarga</a>
        <a data-testid="categoryNavigation#7" class="css-1nykm5o">Buku Desain Ruang Tamu</a>
        <a data-testid="categoryNavigation#8" class="css-1nykm5o">Buku Desain Rumah</a>
        <a data-testid="categoryNavigation#9" class="css-1nykm5o">Buku Interior &amp; Eksterior</a>
        <a data-testid="categoryNavigation#10" class="css-1nykm5o">Buku Metode &amp; Material Bangunan</a>
        <a data-testid="categoryNavigation#11" class="css-1nykm5o">Buku Taman</a>
     </div>


    <div class="css-1owj1eu" data-testid="catNavigation#2">
        <div>
            <a class="css-1qaqbbz">Buku Hukum</a>
        </div>
        <div class="css-1wode1h">
            <a data-testid="categoryNavigation#1"  class="css-1nykm5o">Buku Gender &amp; Hukum</a>
            <a data-testid="categoryNavigation#2"  class="css-1nykm5o">Buku Hukum Dagang</a>
            <a data-testid="categoryNavigation#3"  class="css-1nykm5o">Buku Hukum Internasional</a>
            <a data-testid="categoryNavigation#4"  class="css-1nykm5o">Buku Hukum Perdata</a>
            <a data-testid="categoryNavigation#5"  class="css-1nykm5o">Buku Hukum Pidana</a>
            <a data-testid="categoryNavigation#6" class="css-1nykm5o">Buku Kemanusiaan</a>
            <a data-testid="categoryNavigation#7"  class="css-1nykm5o">Buku Politik &amp; Hukum</a>
            <a data-testid="categoryNavigation#8" class="css-1nykm5o">Kumpulan Peraturan Perundang-Undangan</a>
            <a data-testid="categoryNavigation#9" class="css-1nykm5o">UUD 1945</a></div>
    </div>

вот мой исходный код для очистки

$dom = new \DOMDocument;
$dom->loadHTML($f);
$xpath = new DOMXPath($dom);
$results = $xpath->query("//*[@class='css-1qaqbbz']");


if ($results->length > 0) {
echo "<pre>";
    $arrCats = []
    foreach ($results as $key => $value) {
    $arrCats[] = $value->nodeValue;

    }
// die;
}

1 Ответ

0 голосов
/ 10 апреля 2020

Просто измените ваш запрос XPath:

$results = $xpath->query("//a[starts-with(@class,'css')]");

Выходы:

Array

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