使用DOM解析HTML
我想从提供的特定URL解析HTML数据。但我无法解析数据,因为我收到了一些错误。使用DOM解析HTML
这是我的代码: -
$html = new DOMDocument();
$html->loadHTML($url); //$url is where the site url is defined
$value = array();
foreach($html->find($identifier) as $element) //$identifier is where div, a etc is stored
{
$value[] = $element->src."<br />";
}
print_r($value);
我收到以下错误
Call to undefined method DOMDocument::find()
谁能帮我这个。我现在用的蛋糕PHP 2.0
由于错误指示,DOMDocument
没有find
方法。然而,它确实有很多很不错的DOM解析方法:http://www.php.net/manual/en/class.domdocument.php
如果$identifier
是一个元素的名字,它将使意义使用
foreach ($html->getElementsByTagName($identifier) as $element) {
$value[] = $element->nodeValue + "<br>";
}
非常感谢:) – 2013-03-01 07:25:25
这将不起作用:
$html->loadHTML($url);
LoadHTML加载一个字符串,这将例如工作:
$html->loadHTML("<html><body>Test<br></body></html>");
尝试使用loadHTMLfile:
$html->loadHTMLFile("filename.html");
参见:http://www.php.net/manual/en/domdocument.loadhtmlfile.php
非常感谢:) – 2013-03-01 07:25:58
如何阅读你的类的文档使用? DOMDocument在php.net网站上有很好的记录,并且没有提及find
方法,为什么你会认为它呢?
DOMDocument
有很多所熟悉的任何JavaScript
开发方法,如getElementsByTagName
和getElementById
这应该是你在找什么。
此外,如果您要从URL加载HTML,则DOMDocument::loadHTML
方法将不起作用,因为它期望包含有效HTML的字符串,而不是URI。
DOMDocument::loadHTMLFile
可能与URL参数一起工作(不能确定,没有在这台计算机上安装PHP来检查),但如果没有,您可以合并DOMDocument::loadHTML
和file_get_contents
以使其起作用。
非常感谢:) – 2013-03-01 07:24:00
什么是'identifier'的具体例子的指定者()方法? – 2013-03-01 07:07:25
例如我拿$ identifier = div – 2013-03-01 07:08:42