2010-02-27 248 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