[英]How to prevent DOMXPath from expanding HTML entities?
我在PHP中使用DOMDocument和DOMXPath來查找HTML文檔中的元素。 此文檔包含HTML實體,例如  我希望這些實體保留在XPath輸出中。
$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
也許它與PHP在內部使用的LibXML有關,但我找不到任何保留HTML實體的函數。
你有好主意嗎?
XPath始終會看到已擴展實體引用的XML文檔的表示形式。 防止這種情況的唯一方法是預處理XML文檔,用不會擴展的東西替換實體引用,例如更改
到§nbsp;
。
XPath處理器不知道是否將非制動空格字符指定為
或作為 ' -- the character is always provided to it as a character entity --
 ' -- the character is always provided to it as a character entity --
`。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.