php htmlspecialchars()不工作

php htmlspecialchars()不工作,php,xml,Php,Xml,我基本上有一个xml文件,其中一个属性是带有&’s的链接。我无法用simplexml\u load\u字符串解析这个,所以我在xml解析之前对它使用htmlspecialchars,在xml解析之后使用htmlspecialchars\u解码。但这是行不通的。xml解析一直失败。我的代码如下 public static function parseXMLStr($xml_str) { $xml_str=htmlspecialchars($xml_str, ENT_NOQU

我基本上有一个xml文件,其中一个属性是带有&’s的链接。我无法用simplexml\u load\u字符串解析这个,所以我在xml解析之前对它使用htmlspecialchars,在xml解析之后使用htmlspecialchars\u解码。但这是行不通的。xml解析一直失败。我的代码如下

public static function parseXMLStr($xml_str) {
            $xml_str=htmlspecialchars($xml_str, ENT_NOQUOTES);
            self::$xml=simplexml_load_string($feature_ban_xml_str);
            if(isset(self::$xml->link)) {

               .....
出什么事了?我理解错误了吗

编辑:xml

<?xml version="1.0" encoding="UTF-8"?>
<link>
   <sublink active="true" redirect="http://abc.def.com/abcdef?id=&cId=45&kId=kA16000">
   </sublink>
</link>

我必须加上,str_替换“&”、“&;”,背部也很好。但是我需要一些健壮的东西,而不仅仅是&'s

如果您只想对属性的链接进行编码,那么您可以使用url\u encode,url\u decode

发布XML的相关部分吗?请查看。基本上,您只需要为重定向属性应用htmlspecialchars。顺便说一句,htmlspecialchars完全取代了&to&;