- 相關推薦
php操作xml的各種方法解析
PHP提供了一整套的讀取 XML文件的方法,很容易的就可以編寫基于 XML的腳本程序。本章將要介紹 PHP與 XML的操作方法,并對幾個常用的 XML類庫做一些簡要介紹。下面是小編整理的php操作xml的各種方法解析,就跟隨百分網小編一起去了解下吧,想了解更多相關信息請持續關注我們應屆畢業生考試網!
XML是一種流行的半結構化文件格式,以一種類似數據庫的格式存儲數據。在實際應用中,一些簡單的、安全性較低的數據往往使用 XML文件的格式進行存儲。這樣做的好處一方面可以通過減少與數據庫的交互性操作提高讀取效率,另一方面可以有效利用 XML的優越性降低程序的編寫難度。
PHP提供了一整套的讀取 XML文件的方法,很容易的就可以編寫基于 XML的腳本程序。本章將要介紹 PHP與 XML的操作方法,并對幾個常用的 XML類庫做一些簡要介紹。
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所示。
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對象
復制代碼 代碼如下:
<?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
?>
在上面的例子中,$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.var_dump函數顯示對象詳細信息
var_dump函數可以用于顯示 SimpleXML對象的詳細信息,與 print_r函數相比,var_dump函數顯示的信息更為完整,其語法如下所示。
void var_dump(object1, object2 … )
以下代碼使用 var_dump函數輸出了上面例子中對象的詳細信息。
復制代碼 代碼如下:
<?php $xml = simplexml_load_file('example.xml'); //創建 SimpleXML對象 var_dump($xml); //輸出 XML ?>
運行結果如下所示。
復制代碼 代碼如下:
object(SimpleXMLElement)#1 (1) { ["depart"]=> array(2) {
[0]=>
object(SimpleXMLElement)#2 (2) {
["name"]=>
string(18) “production support”
["employees"]=>
object(SimpleXMLElement)#4 (1) {
["employee"]=>
array(2) {
[0]=>
object(SimpleXMLElement)#5 (6) {
["serial_no"]=>
string(6) “100001″
["name"]=>
string(5) “Simon”
["age"]=>
string(2) “24″
["birthday"]=>
string(10) “1982-11-06″
["salary"]=>
string(7) “5000.00″
["bonus"]=>
string(7) “1000.00″
}
[1]=>
object(SimpleXMLElement)#6 (6) {
["serial_no"]=>
string(6) “100002″
["name"]=>
string(6) “Elaine”
["age"]=>
string(2) “24″
["birthday"]=>
string(10) “1982-01-01″
["salary"]=>
string(7) “6000.00″
["bonus"]=>
string(7) “2000.00″
}
}
}
}
[1]=>
object(SimpleXMLElement)#3 (2) {
["name"]=>
string(14) “testing center”
["employees"]=>
object(SimpleXMLElement)#7 (1) {
["employee"]=>
object(SimpleXMLElement)#8 (6) {
["serial_no"]=>
string(6) “110001″
["name"]=>
string(5) “Helen”
["age"]=>
string(2) “23″
["birthday"]=>
string(10) “1983-07-21″
["salary"]=>
string(7) “5000.00″
["bonus"]=>
string(7) “1000.00″
}}}}}
與前面 print_r輸出的結果相比較,var_dump函數的輸出結果的結構更為嚴謹,并且將對象中的每一個屬性的數據類型均作出分析。在實際應用中,var_dump函數往往用于程序調試時的對象檢測。
2.讀取 XML數據中的標簽
與操作數組類型的變量類似,讀取 XML也可以通過類似的方法來完成。例如,如果需要讀取上面 XML數據中每一個“ depart”標簽下的“name”屬性,可以通過使用 foreach函數來完成,如以下代碼
所示。
復制代碼 代碼如下:
<?php $xml = simplexml_load_file('example.xml'); foreach($xml->depart as $a)
{
echo “$a->name <BR>”;
}
?>
運行結果如下所示。
【php操作xml的各種方法解析】相關文章:
php解析XML文檔屬性并編輯的代碼09-28
PHP常用MySql操作的方法10-11
用PHP與XML聯手進行網站編程10-16
java讀取解析xml文件實例08-05
PHP文件怎么操作09-03
PHP如何使用DOM和simplexml讀取xml文檔07-22
自學PHP方法09-24
PHP常用的文件操作函數10-17
PHP網絡操作函數講解07-23
PHP快速排序算法解析10-09