私はwebapgeからの特定の値を求めています。h1タグに含まれる製品名:
<div id="extendinfo_container">
<a href="/someproduct.html"><h1><strong>Product Name</strong></h1></a>
<div style="font-size:0;height:4px;"></div>
<p class="text_breadcrumbs">
<a href="/Our-Brands.html" target="_self"><img src="arrow_091.gif" align="absmiddle"/></a>
<a href="/someproduct.html" target="_self" class="link_breadcrumbs">Product Name</a><img src="arrow_091.gif" align="absmiddle"/>
<strong>Product Name</strong>
<div class="dotted_line_blue">
<img src="theme_shim.gif" height="1" width="100%" alt=" " />
</div>
</div>
これは、複数のh1を含む構造が不十分なWebサイトであるため、getElementById('h1')を単純に実行することはできません。
どの要素を取得するかをできるだけ具体的にしたいと思います。これが私が持っているコードです。
$doc = new DOMDocument();
@$doc->loadHTML(file_get_contents('http://url/to/website'));
// locate <div id="extendinfo_container"><a><h1><strong>(.*)</strong></h1></a> as product name
$x = new DOMXPath($doc);
$pName = $x->query('//div[@id="extendinfo_container"]/a/h1/strong');
var_dump($pName->nodeValue);
これはリターンnull
です。必要なコンテンツを取得するには、どのクエリを使用する必要がありますか?