我在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