XML文件,如下

  <xml>
<ToUserName><![CDATA[toUser]]></ToUserName>
<FromUserName><![CDATA[FromUser]]></FromUserName>
<CreateTime>123456789</CreateTime>
<MsgType><![CDATA[event]]></MsgType>
<Event><![CDATA[subscribe]]></Event>
</xml>


假设$str的内容就是上面这段XML。 

解决思路很简单:先去掉”cdata”,然后直接转化为json,然后再解析json,然后直接取对应字符串的值,代码如下:​​$obj = simplexml_load_string($str, 'SimpleXMLElement', LIBXML_NOCDATA);​

 $eJSON = json_encode($obj);
$dJSON = json_decode($eJSON);
$toUserName = $dJSON->ToUserName;//获取"ToUserName"对应的值