我使用XPath去除凌亂的HTML標籤,如何使用XPATH保持<p><img ... /></p>?
$nodeList = $xpath->query("//*[normalize-space(.)='' and not(self::br)]");
foreach($nodeList as $node)
{
$node->parentNode->removeChild($node);
}
將刪除這樣的可怕的輸入,
<p><em><br /></em></p>
<p><span style="text-decoration: underline;"><em><br /></em></span></p>
,但它也消除了img tag
一樣,我想保持打擊,
<p><img title="picture summit" src="images/32913430_127001_e.jpg" alt="picture summit" width="590" height="366" /></p>
如何保持img tag
輸入爲XPATH?
需要注意的是使用元素'br'將段落在沒有開始新段落的情況下引發回車是完全有效的。你想刪除空的段落?如果是這樣,你將不得不明確考慮你想要的和你不想要的元素。像保持'img',但是過濾掉其他東西。 – lkuty
謝謝。是的,我只想刪除空的段落... – laukok
好問題,+1。甚至在開始編寫XPath表達式之前,最好仔細考慮並指定「p」內的元素使其「非空」。 –