2009-12-19 137 views
0

我已经完成了此操作,但无法找到我的代码片段。PHP DOM - 如何获取包含超链接的span标记内的内容

我想解析一个html文件,并将所有内容放入浏览器中,位于某些span标签之间。还有其他的我不想要的span标签,所以我想我会将解析限制为只有具有相同css类的span标签。有人可以给我一个如何做到这一点的例子吗?谢谢。

$tags = $doc->getElementsByTagName('span'); 

这是HTML的单行我试图解析

<span class='close'><a href="bla.com/test.htm">test row</a></span> 

回答

0

第一次尝试(未经测试):

$elts = $doc->getElementsByTagName('span'); 
foreach ($elts as $elt) 
    { 
    $className = $elt->getAttribute('class'); 
    if (array_search('close', explode(' ', $className))) 
     { 
     // Do things with $elt since it matches. 
     } 
    } 
+0

嘿达斯汀,感谢您的帮助。我几乎可以肯定,有一种方法可以将css类名添加到“getElementsByTagName”,而不必使用正则表达式。如果我不能从这里得到任何人的语法,我一定会用你的建议 – John 2009-12-19 00:34:10

+0

编辑原始答案。自从我使用PHP以来已经有一段时间了。 – Dustin 2009-12-19 00:42:14

+0

哥们,谢谢。有用。我修改你的代码来使用in_array()而不是array_search,因为我有一个关联数组,array_search不起作用。除此之外,它效果很好。 – John 2009-12-19 00:52:27

0

在我看来,体验它可以由getElementsByTagName()完成?只需使用一些ajax-y函数来调用它,并且你有你的DOM元素:)

+0

嘿,本,我最终想用这个脚本作为cron作业运行,所以AJAX将不起作用,因为AJAX只能在浏览器中运行。目前,我正在使用浏览器进行测试。 – John 2009-12-19 00:42:36