上面两篇记录了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()函数返回某个节点下的所有子节点