有好多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());

赶快试一下看看是不是能读出来了喵

~

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐