Как правильно составить выражение XPath, чтобы исключить тег?

Вот HTML фрагмент:

<div class="content">
    <h3>Описание</h3>
    <p></p>
    <p><br></p>
    <p>Состав:</p>
    <br>
Вода, сахар, краситель
    <p></p>
    <p></p>
</div>
Необходимо составить выражение XPath в ->query(), чтобы на выходе ->nodeValue получился текст "Состав:Вода, сахар, краситель". То есть нужно взять все содержимое блока <div class="content">, но исключить содержимое первого <h3>. Есть какие-либо идеи?


Ответы (1 шт):

Автор решения: orel-22

берём родительский DOMNodeList (точнее набор)

$productDescriptionObj = $productFinder->query("//div[@class='content']"); 

берём DOMNodeList (точнее набор), в котором node, который нужно исключить

$productDescriptionTitleObj = $productFinder->query("./h3", $productDescriptionObj[0]);

берём непосредственно node

$productDescriptionTitle = $productDescriptionTitleObj->item(0);

вырезаем node из ветки (нужно обращаться через родителя)

$productDescriptionTitle->parentNode->removeChild($productDescriptionTitle);

берём весь контент родителя, где уже нету h3, контент которого нужно было исключить

$productDescription = $productDescriptionObj[0]->nodeValue;
→ Ссылка