1

我正在尝试从内部抓取纯文本<font size="3" color="blue">......它没有拾取字体标签,虽然如果我做“字体”它确实有效,3但网站中有很多字体标签,我想要使搜索更具体。标签上可以有多个属性吗?

<?php

include('simple_html_dom.php');

$html = new simple_html_dom();   
$html = file_get_html('http://cwheel.domain.com/');

##### <font size="3" color="blue">Certified Genuine</font>
$element = $html->find("font[size=3][color=blue]", 0);  
echo $element-> plaintext . '<br>';
$html->clear();

?>
4

1 回答 1

1

我不知道 Simple_html_dom。但是您尝试传递的查询似乎是一个 xpath 查询。在这种情况下,您需要将前缀属性与@. 此外,您需要为整个查询添加前缀,//以确保它搜索font任何深度级别的任何标签。最终查询应如下所示。

//font[@size=3][@color=blue]

使用 DOMDocument 和 DOMXPath效果很好

$doc = new DOMDocument();
$doc->loadHTML($html);
$xpath = new DOMXPath($doc);
$fonts = $xpath->query('font[@size="3" ][ @color="blue"]');
foreach($fonts as $font){
    echo $font->textContent. "\n";
}
于 2013-01-17T06:10:45.387 回答