编程语言
首页 > 编程语言> > php-DOMXPath $html-> query(‘// p [@ class =“ myclass”] / a’)-> item(0);不工作

php-DOMXPath $html-> query(‘// p [@ class =“ myclass”] / a’)-> item(0);不工作

作者:互联网

DOMXPath $html-> query(‘// p [@ class =“ myclass”] / a’)-> item(0);不管用.

这是HTML

<p class="username">
<img src="http://static1.tryal.com/img/b.gif" onclick="lalalaa()" class="a12s_iYblt4hN_DkIt_GoiyOtu8 opsi" />
<b>
<a href="/about"><b>Lalala.</b></a>
</b>
</p>


$name = $html->query('//p[@class="username"]/a')->item(0)->nodeValue; 
//This doesn't return the name "Lalala.";

$name = $html->query('//p[@class="username"]')->item(0)->nodeValue; 
//This works just fine.

为什么这棵树不起作用?我打错了吗?

提前非常感谢您.

解决方法:

您指定的xpath没有提供任何结果(或没有精确元素的结果).您可以通过不让b元素通过来解决此问题:

$name = $html->query('//p[@class="username"]/b/a')->item(0)->nodeValue; 
                                            ^^^

或不通过直接从p生成直接/直接子代,而是在更深的地方(在xpath中使用双斜杠//的后代):

$name = $html->query('//p[@class="username"]//a')->item(0)->nodeValue; 
                                            ^^

标签:null,domxpath,php
来源: https://codeday.me/bug/20191102/1991565.html