PHP simplexml_load_string 解析需要注意类型问题
使用 simplexml_load_string 解析 xml 之后,通常我们就直接获取对应的对象属性,当做字符串用了。但实际上,用 var_dump 打印出来,就会发现,这些属性依然是一个对象。由于 php 是弱语言类型,就绝大部分时候并不会报错。但是,重点来了,如果你直接把解析后的对象属性,用到类似 json_encode 之类的场景,问题就大了。
因此,如果需要将属性当做字符串用,务必强制转为 string 类型。
$string = <<<XML
<?xml version='1.0'?>
<document>
<title>Forty What?</title>
<from>Joe</from>
<to>Jane</to>
<body>
I know that's the answer -- but what's the question?
</body>
</document>
XML;
$xml = simplexml_load_string($string);
print_r($xml->to);
以上代码输出:SimpleXMLElement Object ( [0] => Jane )
print_r($xml->to->__toString());
以上代码输出: Jane
撰写评论