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);