XML文件,如下
<xml> <ToUserName><![CDATA[toUser]]></ToUserName> <FromUserName><![CDATA[FromUser]]></FromUserName> <CreateTime>123456789</CreateTime> <MsgType><![CDATA[event]]></MsgType> <Event><![CDATA[subscribe]]></Event> </xml>
假设$str的内容就是上面这段XML。
1、解决思路很简单:先去掉”cdata”,然后直接转化为json,然后再解析json,然后直接取对应字符串的值,代码如下:
$obj = simplexml_load_string($str, 'SimpleXMLElement', LIBXML_NOCDATA);
$eJSON = json_encode($obj); $dJSON = json_decode($eJSON); $toUserName = $dJSON->ToUserName;//获取"ToUserName"对应的值
2、使用$result = getElementByTagName("rule")读取文本,再使用str_replace()用空格替换<![CDATA[( && )]]>,最后使用trim(string,charlist)[charlist=""]删除字符串两端的空格!
标签:XML,解析,CDATA,json,charlist,str,PHP From: https://www.cnblogs.com/Im-Victor/p/16838559.html