Освоение PHP XPath: изучение различных методов получения всех тегов внутри тега

$dom = new DOMDocument();
$dom->loadHTML($html);
$xpath = new DOMXPath($dom);
$tags = $xpath->query('//parentTag//childTag');
foreach ($tags as $tag) {
    // Process each tag here
    echo $tag->nodeValue;
}

Метод 2: использование осей XPath
Оси XPath позволяют выбирать узлы относительно других узлов в документе. Используя descendantили descendant-or-self

$dom = new DOMDocument();
$dom->loadHTML($html);
$xpath = new DOMXPath($dom);
$tags = $xpath->query('//parentTag/descendant::childTag');
foreach ($tags as $tag) {
    // Process each tag here
    echo $tag->nodeValue;
}
$dom = new DOMDocument();
$dom->loadHTML($html);
$xpath = new DOMXPath($dom);
$tags = $xpath->query('//parentTag[childTag/@attributeName="attributeValue"]');
foreach ($tags as $tag) {
    // Process each tag here
    echo $tag->nodeValue;
}

Метод 4: объединение выражений XPath с DOMNodeList
Вы также можете комбинировать выражения XPath с классом DOMNodeList для получения всех тегов внутри определенного тега. Вот пример:

$dom = new DOMDocument();
$dom->loadHTML($html);
$xpath = new DOMXPath($dom);
$parentTags = $xpath->query('//parentTag');
foreach ($parentTags as $parentTag) {
    $tags = $xpath->query('.//childTag', $parentTag);
    foreach ($tags as $tag) {
        // Process each tag here
        echo $tag->nodeValue;
    }
}