PHP DOMNode实体和nodeValue

PHP DOMNode实体和nodeValue,php,dom,Php,Dom,获取节点值中包含实体的DOMNode对象的节点值(即a>;)时,它会将实体转换为其可打印字符(即>) 有人知道如何让它作为一个实体,当它转换成意想不到的东西时,它真的会搞砸字符串比较 下面的代码再现了这个问题,您会注意到转储的长度是3,而它应该是6 <?php $xml='<?xml version="1.0"?> <root> <element>&gt;</element> </root>'; $a=new DOMD

获取节点值中包含实体的DOMNode对象的节点值(即a>;)时,它会将实体转换为其可打印字符(即>)

有人知道如何让它作为一个实体,当它转换成意想不到的东西时,它真的会搞砸字符串比较

下面的代码再现了这个问题,您会注意到转储的长度是3,而它应该是6

<?php
$xml='<?xml version="1.0"?>
<root>
<element>&gt;</element>
</root>';
$a=new DOMDocument();
$a->loadXML($xml);
var_dump($a->childNodes->item(0)->nodeValue);

loadXML()
接受一个
options
参数,其中一个选项是,它允许将实体转换为其表示形式,因此默认情况下
loadXML()
不应这样做。然而,libxml中似乎存在一个bug,导致它一直在发生,根据

的说法,谢谢你,可惜这是一个bug,看起来我不得不通过htmlentities进行比较。太棒了!5年过去了,这仍然是一个问题(Debian 6)。这是不是意味着它不能解决像这样的问题,还是有很多代码依赖于这个bug?