$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;
}
}