如何在 PHP 中使用 XPATH 从同一个 类 中仅抓取一个 HTML 内容?

How to grab only one HTML content from same classes using XPATH in PHP?

我想使用 PHP.

获取来自简单 XML 的 HTML 字符串的内容

所以我有一个 XML 文件,其中我已经从描述标签中获得了 HTML 字符串。这个 HTML-string 有一些我不需要的 div。我只想从我知道的路径中获取明确的内容。

我正在阅读不同的类似问题,但无法使用 XPATH 找到合适的解决方案,并尝试了不同的方法但没有取得预期的成功。

所以整个 HTML-string 如下:

<div class="field field-name-field-image field-type-image field-label-hidden">
    <div class="field-items">
        <div class="field-item even">
            <a href="/content/menschen"></a>
        </div>
    </div>
</div>

<div class="field field-name-body field-type-text-with-summary field-label-hidden">
    <div class="field-items">
        <div class="field-item even">
            <p>**GRAB JUST THIS TEXT**</p>
        </div>
    </div>
</div>

<div class="field field-name-field-tags field-type-taxonomy-term-reference field-label-above">
    <div class="field-label">Tags:&nbsp;</div>
    <div class="field-items">
        <div class="field-item even">
            <a href="/tags/louise">Louise</a>
        </div>
        <div class="field-item odd">
            <a href="/tags/gray">Gray</a>
        </div>
        <div class="field-item even">
            <a href="/taxonomy/term/3016">Buch</a>
        </div>
        <div class="field-item odd">
            <a href="/tags/rezension">Rezension</a>
        </div>
        <div class="field-item even">
            <a href="/tags/richtig">Richtig</a>
        </div>
    </div>
</div>

那么当有相同的 类 同名时,你将如何解决这个问题?

提前致谢。

我猜你可以使用:

$dom = new DOMDocument();
$dom->loadHTML($html);
$xpath = new DOMXPath($dom);

print $xpath->query('//div[contains(@class,"field-item even")]/p')[0]->textContent;
# **GRAB JUST THIS TEXT**

PHP DEMO