我在PHP中使用DOMDocument和DOMXPath來查找HTML文檔中的元素。 本文檔包含HTML實體,如& nbsp;我希望將這些實體保存在XPath輸出中。如何防止DOMXPath擴展HTML實體?
$doc = new DOMDocument();
$doc->loadHTML('<html><head></head><body> Test</body></html>');
$xpath = new DOMXPath($doc);
$nodes = $xpath->query('//body');
foreach($nodes as $node) {
echo $node->textContent;
}
此代碼產生以下輸出(UTF-8):
[space]Test
不過,我想有這樣的:
Test
或許這事做的libxml是PHP在內部使用,但我找不到任何保留HTML實體的函數。
你有什麼想法嗎?
''[space]'不是UTF-8。你確定它是U + 0020而不是U + 00A0嗎? – Alohci 2011-05-15 11:39:23
@Alohci:是的,你說得對,它是U + 00A0。我只是想弄清楚,輸出是用空白而不是nbsp實體顯示的。 – chrisklaussner 2011-05-15 20:42:31
@Dimitre:對不起,但這是一個XPath特定的問題。這是關於XPath查詢的輸出。 – chrisklaussner 2011-05-15 20:47:33