我已经能够提取给定节点的html
<td class="winner">
<a href="/jockey/497-g-lee">G Lee</a><br><em><a href="/trainer/3372-r-varian">R Varian </a></em>
</td>
我想做的是,如果href包含骑师,则提取文本(在这种情况下,结果将是G Lee)。
我通过做以下来做到这一点
@$dom2->loadHTML($trainer);
$xpath2 = new DOMXPath($dom2);
//chekc to see if it had html in it?
$result_rows2 = $xpath2->query('//a[contains(@href, "jockey")]');
note-trainer就是上面发布的html。
现在我对数据做了一个var_dump,得到了这个:
object(DOMNodeList)#12 (1) { ["length"]=> int(1) } object(DOMNodeList)#13 (1) { ["length"]=> int(1) } object(DOMNodeList)#12 (1) { ["length"]=> int(1) } object(DOMNodeList)#13 (1) { ["length"]=> int(1) } object(DOMNodeList)#12 (1) { ["length"]=> int(1) } object(DOMNodeList)#13 (1) { ["length"]=> int(1) } object(DOMNodeList)#12 (1) { ["length"]=> int(1) } im not sure why but its not picking up the results?!?!?
有人能帮忙吗?
您的var_dump显示XPath找到了一个项(长度=1),因此尝试访问它:
echo $result_rows2->item(0)->textContent;
当使用print_r
和var_dump
等时,输出DOMNodeList和其他对象并不总是显示其完整的内部结构,但您的数据就在那里。
工作代码板演示