2010-02-27 249 views
1

获取某些html元素+值的最佳方式是什么?例如:获取html标签内/ html标签之间的所有内容

<div id="abc" class="classs"> 
    <img src="pic1.png" alt="pico"> 
    <img src="pic2.png" alt="nano"> 
</div> 

我有什么是div元素的ID = ABC。 我想要得到的div元素里面一切都像:

class of the div ("classs") 
src of the pictures and other data: 
src="pic1.png", alt="pico" 
src="pic2.png", alt="nano" 

它应该是一个数组,对象或东西。 你更喜欢什么? XPath的?正则表达式? XMLObject组成?

+0

是否有使用XHTML的可能性?这将使得使用基于XML的解决方案变得更加容易。 – Skilldrick 2010-02-27 13:12:10

+0

你想做这个服务器端或客户端吗? – 2010-02-27 13:13:14

+0

服务器端,是的,我可以使用xhtml – MilMike 2010-02-27 13:27:07

回答

0

使用此功能:

public function innerHTML($DOMnode) { 
    return preg_replace(
     '/^<(\w+)\b.*?>(.*)<\/\1?>/s', 
     '$2', 
     $DOMnode->ownerDocument->saveXML($DOMnode) 
    ); 
} 
+0

IA IA Cthulhu Fhtagn !!! http://www.codinghorror.com/blog/2009/11/parsing-html-the-cthulhu-way.html – Gordon 2010-02-27 13:19:06

+0

如果你更好地研究了代码,你会注意到你没有解析整个HTML页面,但只有DOM节点的内容! – stillstanding 2010-02-27 13:27:07

+0

我没有研究它,发现将DomNode转换为字符串以便能够在其上运行正则表达式是非常可怕的。 – Gordon 2010-02-27 13:32:15