使用SimpleXML 解析xml

最近搞解析XML搞的我是水深火热的,所以打算对PHP5解析XML做个学习小结。今天介绍下与PHP5捆绑在一起的SimpleXML扩展,这个用于可读写XML的新的API,让解析XML不再繁琐和困难,用起来就一个字“爽”。接下来我就告诉你有多爽。

1.今天解析的XML文档格式如下:

<?xml version="1.0" encoding="UTF-8"?>
<!--
     Document   : test.xml
    Author     : 蘇哥拉笛
     Description:
        Purpose of the document follows.
-->
<root>
    <row id="1">
        <name>Jordan</name>
        <age>40</age>
        <email>jordan@gmail.com</email>
    </row> 
    <row id="2">
        <name>Yao</name>
        <age>27</age>
        <email>yaoming@yahoo.com.cn</email>
    </row>  
    <row id="3">
        <name>sugeladi</name>
        <age>22</age>
        <email>su@@@@@@ge</email>
    </row>
</root>

2.解析XML:

    解析XML并把它保存在一个变量中,使用SimpleXML只需要写一行即可完成:

   $xml=simplexml_load_file("test.xml")

3.获取你想要标签的值:

    比如我想要拿到name标签中的值,你可以这样写:

   $name=$xml->row->name;

   之后echo $name,得到jordan。如果要得到全部的name标签的值,你可以这样:

   foreach($xml -> row as $row){

          echo "$row -> name<br>";

   }

   输出:Jordan

                 Yao

                 sugeladi

   看到这你发现乐趣了没?哈哈,你想要什么,只要有$xml这个对象,只有你熟悉XML文档的结构,那么取值是不是很方便的说,只要给出相应的节点标签名称,你就可以获取到你想要的值。那么接下来我们继续来玩玩XML解析。

4.按索引访问相应的标签元素值

     如果XML结构良好,那么我们可以按索引访问元素,默认索引为0,比如现在我们要拿name是Jordan这项,我们可以这样写:

    $name=$xml -> row[0] -> name;

    echo $name;

    输出:Jordan

5.查找元素的属性值:

     我们现在要取<row id="1">的id的值可以这样:

     foreach($xml -> row -> attributes() as $id){

         echo $id;

    }

   输出:1

原文地址:https://www.cnblogs.com/lbnnbs/p/3783322.html