我们假设我们有这个html和以下DOMXPath代码:
<div>
<div>
<p>1</p>
</div>
<div>
<p>2</p>
</div>
<div>
<p>3</p>
</div>
<div>
<p>4</p>
</div>
<div>
<p>5</p>
</div>
<div>
<p>6</p>
</div>
</div>
$doc = new DOMDocument();
$doc->loadHtml($strhtml);
$doc->preserveWhiteSpace = false;
$xpath = new DOMXPath( $doc );
$nodelist = $xpath->query('//div/div[2]/p');
foreach( $nodelist as $node ) {
$result = $node->nodeValue."\n";
}
echo $result;
显然,$result = '2'
,因为我们要求&#39; p&#39;从第二个&#39; div&#39;节点
现在,我如何从&#39; div[2]
&#39;中获取值?到&#39; div[4]
&#39;并总结一下?
准确地说,我想知道如何从#到#&#34; 获取&#34;以及如何获得&#34;这个#, #,还有#和#&#34; 。所以有两个问题,针对两个不同的问题。
提前致谢。
答案 0 :(得分:0)
您可以使用DOMXPath
选择元素范围:
第一个问题 从#到#&#34; 使用 以下方法:
// select nodes within specified range of positions
$nodelist = $xpath->query('//div/div[position()>1 and position()<5]');
关于第二个问题得到#34;这个#,#,还#和#&#34;
尝试以下(使用|
union运算符):
// extracts the 2nd, 4th and 6th elements respectively
$nodelist = $xpath->query('//div/div[2] | //div/div[4] | //div/div[6]);