当前位置:编程学习 > php >>

PHP操作XML详解(1/4)

1 XML简介
XML是“可扩展性标识语言(eXtensible Markup Language)”的缩写,是一种类似于 HTML的标记性语言。但是与 HTML不同,XML主要用于描述数据和存放数据,而 HTML主要用于显示数据。
XML是一种“元标记”语言,开发者可以根据自己的需要创建标记的名称。例如,下面的 XML代码可以用来描述一条留言。

 代码如下 复制代码

<thread>
<title>Welcome</title>
<author>Simon</author>
<content>Welcome to XML guestbook!!</content>
</thread>

其中,<thread>与</thread>标签标记了这是一段留言。在留言中有标题、作者、内容,完整的表述了一条留言信息。
在一个 XML文件的顶部,通常使用<?xml version=”1.0″?>来标识 XML数据的开始和 XML数据使用标准的版本信息。在浏览器中访问 XML文件可以看到层次分明的 XML数据信息,如图 1所示。


图片:1.jpg

XML的发展非常迅速,近些年来很多软件开发商都开始采用 XML的开发标准进行应用程序的开发。并且,很多新兴技术都架构在 XML数据之上。这意味着 XML将与 HTML一样成为 Web技术不可或缺的一部分。
2 简单的 XML操作
在实际应用中,PHP与 XML的交互操作应用非常广泛。SimpleXML组件是 PHP5新增加的一个简
单的 XML操作组件,与传统的 XML组件相比,SimpleXML组件的使用非常简单。本节将对使用
SimpleXML组件操作 XML的方法做一下详细介绍。
2.1 创建一个 SimpleXML对象
SimpleXML对象是用来临时存储 XML数据的临时变量,对 XML进行的操作都是通过操作 SimpleXML对象来完成的。SimpleXML组件提供了两种创建 SimpleXML对象的方法。第一种方法是使用 simplexml_load_string函数读取一个字符串型变量中的 XML数据来完成创建的,其语法格式如下所示。
simplexml_load_string(string data)
这里的 data变量用于存储 XML数据。以下代码使用 simplexml_load_string函数创建了一个 SimpleXML对象

 

 代码如下 复制代码
<hr><?php
$data = <<<XML //定义 XML数据
<?xml version=’1.0′?>
      <departs>
          <depart>
          <name>production support</name>
         <employees>
            <employee>
              <serial_no>100001</serial_no>
                    <name>Simon</name>
                    <age>24</age>
                    <birthday>1982-11-06</birthday>
                    <salary>5000.00</salary>
                   <bonus>1000.00</bonus>
           </employee>
          <employee>
                     <serial_no>100002</serial_no>
                     <name>Elaine</name>
                     <age>24</age>
                     <birthday>1982-01-01</birthday>
                    <salary>6000.00</salary>
                   <bonus>2000.00</bonus>
           </employee>
</employees>
</depart>
<depart>
          <name>testing center</name>
            <employees>
              <employee>
                    <serial_no>110001</serial_no>
                    <name>Helen</name>
                    <age>23</age>
                    <birthday>1983-07-21</birthday>
                    <salary>5000.00</salary>
                   <bonus>1000.00</bonus>
            </employee>
        </employees>
</depart>
</departs>
XML;
$xml = simplexml_load_string($data); //创建 SimpleXML对象
print_r($xml);         //输出 XML
?><hr>

在上面的例子中,$data变量存储了一段 XML数据。 simplexml_load_string函数将变量$data转化成 SimpleXML对象。通过 print_r函数的输出可以看出该对象的结构,运行结果如下所示。

 代码如下 复制代码

SimpleXMLElement Object
(
    [depart] => Array
(
            [0] => SimpleXMLElement Object
(
                    [name] => production support
                    [employees] => SimpleXMLElement Object
(                            [employee] => Array (
                                    [0] => SimpleXMLElement Object
(                                           [serial_no] => 100001                                            
            [name] => Simon                                          
            [age] => 24                                            
            [birthday] => 1982-11-06                                            
            [salary] => 5000.00                                            
            [bonus] => 1000.00
)
                                    [1] => SimpleXMLElement Object
(                                           [serial_no] => 100002                                            
            [name] => Elaine                                          
            [age] => 24                                            
            [birthday] => 1982-01-01                                            
            [salary] => 6000.00                                            
            [bonus] => 2000.00
                        )
              )
       )
)
            [1] => SimpleXMLElement Object
(
                [name] => testing center
                [employees] => SimpleXMLElement Object
(
                [employee] => SimpleXMLElement Object
(
                [serial_no] => 110001
                [name] => Helen
                [age] => 23
                [birthday] => 1983-07-21
                [salary] => 5000.00
                [bonus] => 1000.00
                     )
               )
          )
     )
)

从输出结果可以看出,SimpleXML对象的结构与 XML数据的格式完全相同。
第二种方法是使用 simplexml_load_flie函数读取一个 XML文件来完成创建的,其语法格式如下所示。
simplexml_load_file(string filename)
这里的 filename变量是用于存储 XML数据文件的文件名及其所在路径。以下代码使用 simplexml_load_file函数来创建了一个 SimpleXML对象。

 代码如下 复制代码

<?php
$xml = simplexml_load_file(’example.xml’); //创建 SimpleXML对象
print_r($xml);         //输出 XML
?>

其中,example.xml存储的数据与上面的$data完全相同,运行结果也与上面完全相同。
上面两种方法实现了同样的功能,其区别就在于 XML的数据源不同。如果 XML的数据源在 PHP脚本文件中,则需要使用 simplexml_load_string来进行创建。如果 XML的数据源在一个单独的 XML文件中,则需要使用 simplexml_load_file来进行创建。
2.2 读取 SimpleXML对象中的 XML数据
前面介绍了使用 print_r函数来读取 SimpleXML对象中的数据,其返回结果与数组的结构类似。显然,这种显示方式在实际应用中是不可取的。在这里将介绍其他的几种读取 SimpleXML对象中 XML数据的方法。

1 2 3 4
补充:Php教程,XML应用 
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,