我有一个xml字符串。该xml字符串必须转换为PHP数组,以便由我的团队正在处理的其他软件部分进行处理。 对于xml - >数组转换我正在使用这样的东西:
if(get_class($xmlString) != 'SimpleXMLElement') {
$xml = simplexml_load_string($xmlString);
}
if(!$xml) {
return false;
}
它工作正常 - 大部分时间:)当我的“xmlString”包含这样的内容时出现问题:
<Line0 User="-5" ID="7436194"><Node0 Key="<1" Value="0"></Node0></Line0>
然后,simplexml_load_string将不会完成它的工作(我知道那是因为字符“&lt;”)。 因为我不能影响代码的任何其他部分(我无法打开生成XML字符串的模块并告诉它“编码特殊字符,请!”)我需要你的建议如何解决这个问题之前调用“ simplexml_load_string”。
你有什么想法吗?我试过了
str_replace("<","<",$xmlString)
但是,这只会破坏整个“xmlString”... :(
答案 0 :(得分:2)
那么,您只需使用&a
和$xmlString
将htmlspecialchars()
中的特殊字符替换为HTML实体对应的字符。
我知道这不是性能友好的,但它可以完成工作:)
preg_replace_callback()