在循环中尝试这个:
$sub_titles = explode("\n", $node->nodeValue); $first_sub_title = trim($sub_titles[0]); echo $first_sub_title.'<br/>';
你可以通过多种方式实现它,一种方法是只使用foreach键并在循环中添加if条件:
// indices start at zero $fifth = 4; // or 5 - 1 foreach ($nodes as $key => $node) { if($key == $fifth) { $sub_title = trim(explode("\n", trim($node->nodeValue))[0]); echo $sub_title.'<br/>'; } }
或者添加另一个查询以明确指向第n个位置:
$fifth = $finder->evaluate(' string( (//h4[@class="sub-title"])[5] ) '); $fifth = explode("\n", trim($fifth)); echo $fifth[0];
或者将它们放在容器(数组)中,然后通过索引显式调用它们(根据下面的注释):
$sub_title = array(); foreach ($nodes as $key => $node) { $sub_title[] = trim(explode("\n", trim($node->nodeValue))[0]); } echo $sub_title[4]; // call fifth