2011-07-28 45 views
1

說這是HTML?如何使用DOMDocument獲取標籤內容?

<html> 
<body> 
<embed scr="...." attr="..."></embed> 
</body> 
</html> 

我想匹配整個嵌入標籤<embed scr="...." attr="..."></embed>。我該怎麼做?

我能走到今天

$fragment = new DOMDocument(); 
$fragment->loadHTML($string); 

$xp = new DOMXPath($fragment); 
$result = $xp->query("//embed"); 
print_r($result->item(0)); 
+0

您不能轉儲DOMElement或任何其他DOM對象。將節點傳遞給saveXML或saveHTML以獲取outerHTML。 – Gordon

+0

可能重複[PHP + DOMDocument:元素的outerHTML?](http://stackoverflow.com/questions/5404941/php-domdocument-outerhtml-for-element) – Gordon

回答

7

像這樣:

<?php 
$fragment = new DOMDocument(); 
$fragment->loadHTML($string); 

foreach ($fragment->getElementsByTagName("embed") as $element) 
{ 
    echo $fragment->saveXML($element); 
} 
?> 
2

你可以看看這個PHP Class

如果我正確理解你的問題。這樣做與這個類一樣簡單:

$html = str_get_html($string); 
$ret = $html->find('embed'); 

編輯。而在phpQuery同樣的事情:

phpQuery::newDocumentHTML($string); 
$ret = pq('embed'); 

你應該看看戈登this post的方式。

+0

不知道這些。太好了! –

+1

只是閱讀它並更新我的答案以備將來參考。打敗我吧;-) –

相關問題