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.
为什么这棵树不起作用?我打错了吗?
非常感谢你。
答案 0 :(得分:3)
您指定的xpath未提供任何结果(或者结果没有精确的元素)。您可以通过不让b
元素滑过来解决这个问题:
$name = $html->query('//p[@class="username"]/b/a')->item(0)->nodeValue;
^^^
或者不a
来自p
的直接/直接孩子,但也更深一些( 的后代,xpath中的双斜杠//
):
$name = $html->query('//p[@class="username"]//a')->item(0)->nodeValue;
^^
答案 1 :(得分:1)
尝试
$name = $html->query('//p[@class="username"]//a')->item(0)->nodeValue;
你正在寻找'单一斜线''p'的'a'孩子,而你想要我理解的是'a'后代(双斜线)'p'