来自字符串的元素,在PHP中
可能重复:
使用PHP爬取一个HTML页面?
解析HTML的最佳方法
我的php-script中有一个字符串变量,它包含html页面。 我如何从这个字符串中提取DOM元素?
例如,在这个字符串'<div class="someclass">text</div>'
,我希望获得变量'text'。 我怎么能做到这一点?
您需要使用DOMDocument
类,更具体地说,使用loadHTML
方法将HTML字符串加载到DOM对象。
例如 :
$string = <<<HTML
<p>test</p>
<div class="someclass">text</div>
<p>another</p>
HTML;
$dom = new DOMDocument();
$dom->loadHTML($string);
之后,您将能够操纵DOM,例如使用DOMXPath
类对其执行XPath查询。
例如,在你的情况下,你可以使用基于这部分代码的东西:
$xpath = new DOMXpath($dom);
$result = $xpath->query('//div[@class="someclass"]');
if ($result->length > 0) {
var_dump($result->item(0)->nodeValue);
}
在这里,它会得到以下输出:
string 'text' (length=4)
作为替代方法,您可以使用simplexml_load_string
和SimpleXMLElement::xpath
来代替DOMDocument
,但对于复杂的操作,我通常更喜欢使用DOMDocument
。
看看DOMDocument
和DOMXPath
。
$DOM = new DOMDocument();
$DOM->loadHTML($str);
$xpath = new DOMXPath($DOM);
$someclass_elements = $xpath->query('//[@class = "someclass"]');
// ...
链接地址: http://www.djcxy.com/p/29893.html
上一篇: elements from string, in PHP
下一篇: HTML Scraping in Php