PHP:将xml转换为数组

时间:2015-06-18 08:32:29

标签: php arrays xml xml-parsing

我有一个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("<","&lt;",$xmlString)

但是,这只会破坏整个“xmlString”... :(

1 个答案:

答案 0 :(得分:2)

那么,您只需使用&a$xmlStringhtmlspecialchars()中的特殊字符替换为HTML实体对应的字符。

我知道这不是性能友好的,但它可以完成工作:)

preg_replace_callback()