まともにマニュアルを読まないので、知識が穴だらけの私です。xpathで特定の要素を取得したあと、foreachでループして、さらにそのnodeに対してqueryを投げる方法が検索してもなかなか見つからなかったのですが、見つかったので例のごとくメモしておきます。
xpathのqueryは特定位置からの相対パスでも指定できる
ちょっと適当に例を書いてみる
<ul id="ul_data">
<li>
<h2>aaaa</h2>
<span>AAAAA</span>
</li>
<li>
<h2>bbbb</h2>
<span>BBBBB</span>
</li>
<li>
<h2>cccc</h2>
<span>CCCCC</span>
</li>
</ul>
liタグだけを取得してループしてみる
foreach($xpath->query('//ul[@id="ul_data"]")]/li') as $node){
///$nodeから見て、h2を指定する
$tmp=$xpath->query("h2",$node);
echo $tmp->item(0)->textContent;
//h2の中身が出る
}
こんな感じで、ループ中のnodeから、中身のタグを指定して取り出すことができました。
ひとまずおわり