上面两篇记录了PHP中解析xml的两种不同方法,分别是使用Expat和DOM解析xml文档,这一篇中使用SimpleXML解析xml,该方法比前面两种方法都简便,代码量非常少,下面先看xml文档的内容:
<?xml version="1.0" encoding="utf-8"?> <persons> <person id="1"> <name>zhangsan</name> <age>21</age> <job>teacher</job> <sex>male</sex> <company>IBM</company> </person> <person id="2"> <name>lisi</name> <age>20</age> <job>manager</job> <sex>female</sex> <company>Google</company> </person> </persons>下面是解析xml的PHP代码:
<?php $xmlDoc = simplexml_load_file("data.txt"); foreach($xmlDoc->children() as $child){ //$child就是一个person节点 foreach($child->attributes() as $attr){ echo $attr->getName() . " = " . $attr . "<br/>"; } foreach($child->children() as $personChild){ echo $personChild->getName() . " = " . $personChild . "<br/>"; } } ?>上面的代码在浏览器中输出结果为:
可以看到,simpleXML使用很少量的代码,就可以完成解析工作,其中getName()函数返回的是xml标签中的元素名称,children()函数返回某个节点下的所有子节点