Как запретить DOMXPath расширять объекты HTML?

Я использую DOMDocument и DOMXPath в PHP для поиска элементов в документе HTML. Этот документ содержит объекты HTML, такие как & nbsp; и я хотел бы, чтобы эти объекты были сохранены в выводе XPath.

$doc = new DOMDocument();
$doc->loadHTML('<html><head></head><body>&nbsp;Test</body></html>');

$xpath = new DOMXPath($doc);
$nodes = $xpath->query('//body');

foreach($nodes as $node) {
    echo $node->textContent;
}

Этот код производит следующий вывод (UTF-8):

[space]Test

Но я бы хотел, чтобы это было:

&nbsp;Test

Возможно, это как-то связано с LibXML, который PHP использует для внутренних целей, но я не смог найти ни одной функции, сохраняющей объекты HTML.

У вас есть идея?

6
задан Dimitre Novatchev 15 May 2011 в 23:28
поделиться