use*_*443 14 html php string domdocument
可能重复:
使用php抓取一个html页面?
解析HTML的最佳方法
我的php脚本中有一个字符串变量,它包含html-page.我如何从这个字符串中提取DOM元素?
例如,在这个字符串中'<div class="someclass">text</div>',我希望得到变量'text'.我怎么能这样做?
Pas*_*TIN 27
您需要使用DOMDocument该类,更具体地说,使用它的loadHTML方法,将HTML字符串加载到DOM对象.
例如 :
$string = <<<HTML
<p>test</p>
<div class="someclass">text</div>
<p>another</p>
HTML;
$dom = new DOMDocument();
$dom->loadHTML($string);
Run Code Online (Sandbox Code Playgroud)
之后,您将能够操作DOM,例如使用DOMXPath类对其执行XPath查询.
例如,在您的情况下,您可以使用基于此部分代码的内容:
$xpath = new DOMXpath($dom);
$result = $xpath->query('//div[@class="someclass"]');
if ($result->length > 0) {
var_dump($result->item(0)->nodeValue);
}
Run Code Online (Sandbox Code Playgroud)
在这里,它会得到以下输出:
string 'text' (length=4)
Run Code Online (Sandbox Code Playgroud)
作为替代方案,DOMDocument您也可以使用simplexml_load_string和SimpleXMLElement::xpath- 但对于复杂的操作,我通常更喜欢使用DOMDocument.
$DOM = new DOMDocument();
$DOM->loadHTML($str);
$xpath = new DOMXPath($DOM);
$someclass_elements = $xpath->query('//[@class = "someclass"]');
// ...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
34485 次 |
| 最近记录: |