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