2 回答
TA贡献1824条经验 获得超6个赞
有两种方法可以做到这一点。要么将整个查询结果添加到这样的数组中
$arr = $xpath->query (".//div[@class='review-text']")
然后调用它
$arr[1]->nodeValue
或者如果 HTML 很大,你真的可以通过这样做来节省内存
$counter = 0;
foreach ($xpath->query (".//div[@class='review-text']") as $review)
{
if ($counter == 1) {
$out = $review->nodeValue;
echo $out;
}
$counter++;
}
根据您的需要,您可以选择其中一个选项。此外,如果您需要运行其他代码,但在 中打印foreach,第二种方法也可以这样做。
TA贡献1811条经验 获得超5个赞
你应该尝试这样的事情
<?php
$html = '
<div class="page-wrapper">
<section class="page single-review" itemtype="http://schema.org/Review" itemscope="" itemprop="review">
<article class="review clearfix">
<div class="review-content">
<div class="review-text" itemprop="reviewBody">
Outstanding 1...
</div>
<div class="review-text" itemprop="reviewBody">
Outstanding 2...
</div>
</div>
</article>
</section>
</div>
<div class="review-text" itemprop="reviewBody">
Outstanding 3...
</div>
';
$dom = new DOMDocument;
$dom->loadHTML ($html);
$xpath = new DOMXPath ($dom);
$reviews = $xpath->query (".//div[@class='review-text']");
echo $reviews[1]->nodeValue; // Outstanding 2...
关键是将所有评论存储在一个数组中,然后从数组中回显您想要的评论。
- 2 回答
- 0 关注
- 152 浏览
添加回答
举报