我想使用简单的 html dom 引用以下类
但是有 2 节课
是
class="price"
另一个似乎是class=" price"
使用此代码似乎找不到它
foreach ($html1->find('[class= price ]/text()',0) as $price_data2)
相关页面的来源在这里
我想使用简单的 html dom 引用以下类
但是有 2 节课
是
class="price"
另一个似乎是class=" price"
使用此代码似乎找不到它
foreach ($html1->find('[class= price ]/text()',0) as $price_data2)
相关页面的来源在这里
逐字查询类属性值的示例DOMDocument
(周围有空格):
// configuration
libxml_use_internal_errors(true);
// input
$url = 'http://www.amazon.com/Likeable-Social-Media-Irresistible-ebook/dp/B00511ONPG/ref=tmm_kin_title_0?ie=UTF8&qid=1367741120&sr=8-1';
// processing
$doc = new DOMDocument();
$doc->loadHTMLFile($url);
$xpath = new DOMXPath($doc);
$prices = $xpath->query("//*[@class=' price ']/text()");
// output
foreach($prices as $index => $price) {
printf("%d: %s\n", $index, trim($price->textContent));
}
输出:
0: $14.81
1: $18.38
2: $11.58
3: --
4:
5:
请注意,您提供的 URL 包含无效的 HTML。因此,simpledom 解析器可能会使用提供的数据产生不同的结果(或根本不起作用)。这对于我在这里使用的对象同样适用DOMDocument
,但是,它建立在相当稳定的 libxml 库之上(不仅用于 PHP 世界,也用于许多其他世界)并且它还有一个recovery
属性允许进一步控制。
您应该能够使用:
$html->find('*[class*=price]/text()')
我不喜欢那样,/text()
因为它不是真正的 CSS。
另请注意,您需要,0
在迭代时省略foreach
.