如何使用PHP Simple HTML DOM Parser查找非超链接文本

时间:2011-07-19 07:37:54

标签: php dom

我想将html解析为dom树,并找到<a>标签内的所有文本,因此,我搜索了它,找到了“PHP Simple HTML DOM Parser”。它似乎可以帮助我将HTML DOM解析为DOM树。我想找到不在<a>标签内的文字,但我只能找到<a>标签内的元素。 * ps:它还不支持CSS3而不是选择器。谢谢。 有这方面的经验吗?谢谢。

2 个答案:

答案 0 :(得分:1)

我希望我不会误解这个问题,但是你不能使用PHP的内置DOM函数来查找<a>标签内的文本吗?

<击>
$doc = new DOMDocument();
$doc->loadHTMLFile("http://blahblah.com/blah.html");
$elem_list = $doc->getElementsByTagName("a");
foreach($elem_list as $elem)
    echo $elem->textContent;

<击>

在这种情况下,我将删除所有<a>标记及其内容(例如使用正则表达式),然后将生成的HTML加载到您选择的DOM解析器中。

更新:更好的是,立即解析HTML并使用内置函数删除<a>代码,或循环浏览所有代码,然后跳过<a>标签。应该避免使用HTML的正则表达式。

答案 1 :(得分:0)

我多次使用过这门课。它是在php中解析html / dom的绝佳解决方案。

$html = new simple_html_dom();
// Load your html as string
$html->load('........ HTML ..........');
$a = $html->find('a');
$text='';
for($i=0;$i<count($a);$i++)
$text.=$a[$i]->innertext;

包含标签中所有文本的变量$ text。 希望它会对你有所帮助。