3

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.

なぜこの木が機能しないのですか?私はそれを間違って入力していますか?

事前にどうもありがとうございました。

4

2 に答える 2

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; 
                                            ^^
于 2011-07-02T13:43:27.320 に答える
1

試す

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

'a'(シングルスラッシュ)'p'の子を探していますが、私が理解したいのは' a' (ダブルスラッシュ)'p'の子孫です

于 2011-07-02T13:48:35.293 に答える