XML(Extensible Markup Language)

NOTICE

1.是一种可扩展标记语言,用来标记数据,定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。

2.字符串用”<![CDATA[text]]>”表示,text可以是任意字符串。用CDATA包起来的目的是让text中的内容不会解析成别的条目,只会解析成字符串。

3.整个XML文档必须要有一个根条目,该条目可以是任意名字。

PHP中解析XML方式

[方式一]实例化XML对象

$str="<xml><ToUserName><![CDATA[toUser]]></ToUserName></xml>";
$xml=new SimpleXMLElement($str);

[方式二]使用系统函数

//simplexml_load_string():解析成功返回一个SimpleXMLElement的对象,失败返回false(===)
$res=simplexml_load_string($str);
dump($res->ToUserName);//object(SimpleXMLElement)#2(1){[0]=>object(SimpleXMLElement)#4(0){}}

//LIBXML_NOCDATA-将CDATA设置为文本节点
$res=simplexml_load_string($str,'SimpleXMLElement',LIBXML_NOCDATA);
dump($res->ToUserName);//object(SimpleXMLElement)#2(1){[0]=>string(6)"toUser"}

XML与其他类型数据之间转换

[XML2Array]

$xml=$GLOBALS['HTTP_RAW_POST_DATA'];
$array_data=json_decode(json_encode(simplexml_load_string($xml,"SimpleXMLElement",LIBXML_NOCDATA)),true);

原文地址:https://www.cnblogs.com/skye-blog/p/7729291.html