PHP解析带CDATA的XML方法
XML文件,如下
Markup
<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,然后直接取对应字符串的值,代码如下:
PHP
$obj = simplexml_load_string($str, 'SimpleXMLElement', LIBXML_NOCDATA);
$eJSON = json_encode($obj); $dJSON = json_decode($eJSON);
$toUserName = $dJSON->ToUserName;//获取"ToUserName"对应的值
码字很辛苦,转载请注明来自朱一兵的博客的《PHP解析带CDATA的XML方法》
2018-08-02
学习文章
评论