2013-07-12 190 views
1

我似乎有類似的解決方案,但我沒有能夠轉換到我自己的代碼工作。PHP nodevalue剝離html標籤

我有一個函數,在段落標記之間分割一個html字符串,並返回一個數組。代碼如下...

$dom = new DOMDocument(); 
$dom->loadHTML($string); 
$domx = new DOMXPath($dom); 
$entries = $domx->evaluate("//p"); 
$result = array(); 
foreach ($entries as $entry) { 
    $result[] = '<' . $entry->tagName . '>' . $entry->nodeValue . '</' . $entry->tagName . '>'; 
} 

return $result; 

有人可以幫助我,所以它返回的段落內容與HTML標籤完全從該刪除的nodeValue元素?

+0

可能重複的[PHP + DOM文檔:outerHTML爲元件](http://stackoverflow.com/questions/5404941/php-domdocument-outerhtml- for-element) – hakre

回答

4

您甲腎上腺素ED調用saveHTMLownerDocument屬性:

$result[] = $entry->ownerDocument->saveHTML($entry); 
+0

@AdamJones - 我運行了Orangepill的代碼,並且它可以很好地處理'saveXML'。 –

+0

@PédeLeão我認爲如果內容沒有很好地形成,它可能會在saveXML上嘔吐。我知道有效的HTML!=有效的XML – Orangepill

+0

保存html不會改善它,要麼害怕。我已經將html添加到問題中了...... – AdamJones

2
$dom = new DOMDocument(); 
$dom->loadHTML($string); 
$entries = $dom->getElementsByTagName('p'); 
$new_dom = new DOMDocument(); 
foreach ($entries as $entry) { 
    $new_dom->appendChild($new_dom->importNode($entry, TRUE)); 
} 
$result = $new_dom->saveHTML() 
+0

這不會返回任何內容恐怕 – AdamJones

+0

@AdamJones - 我只是再次運行沒有問題。 –

+0

如果這有幫助,我剛剛添加了一個鏈接到使用(在一個字符串變量)的HTML Im的代碼上運行的鏈接? – AdamJones