有好多xml格式的数据是带有CDATA的,如果开发过微信公众号的朋友应该会有很深的感触,那么里面的内容应该如何解析呢?
假设有
一个xml文件如下:
DATA[FromUser]]>
123456789
sgType>
为了便于操作,我们假设$str的内容就是上面这段XML。
解决思路很简单:先去掉"cdata",然后直接取对应字符串的值,php代码如下:$obj = simplexml_load_string($str, 'SimpleXMLElement', LIBXML_NOCDATA);
或者:$obj = simplexml_load_string($str, null, LIBXML_NOCDATA);
使用print_r打印$obj的结果如下:SimpleXMLElement Object
(
[ToUserName] => toUser
[Fr
omUserName] => FromUser
[CreateTime] => 123456789
[MsgType] =>&nb
sp;event
[Event] => subscribe
)echo $obj->ToUserName; //
获取"ToUserName"对应的值/**
* 测试xml读取
cdata
*/
function xml()
{
$str = "
ser]]>
eTime>123456789
&l
t;![CDATA[subscribe]]>
";
$obj = simplexml_load_string($str, &
#39;SimpleXMLElement', LIBXML_NOCDATA);
return $obj;
}
print_r(xml());
赶快试一下看看是不是能读出来了喵
~