2010-10-06 43 views
0

有谁知道如何解析在PHP中使用SimpleXMLElement的xml字符串时,密钥中有一个空格吗?解析XML与他们的名字中有空格的键

例如,

$xmlString = "<test><this is>a</this is></test>"; 
$xml = new SimpleXMLElement($xmlString); 
print_r($xml); 
在上面的例子

“这是”使解析器去香蕉。我猜测它是因为它认为它的财产就像期待的那样?

的奖赏PT, (也如果密钥是一个数字..像“1”,同样的事情发生)..

+0

实际上,解析器认为“is”是一个属性,如解析器错误消息“Entity:line 1:parser error:attribute specification value for attribute is'所示。 – Gordon 2010-10-06 18:45:48

回答

3

这是因为有数字为元素和元素与空间不是一部分有效的XML。您最好在XML字符串上运行替换函数,将<(\d+)>转换为<el_$1>,并用下划线替换节点中的空格。