PHP 簡單XML

PHP SimpleXML

PHP SimpleXML 處理最普通的 XML 任務,其餘的任務則交由其它擴充處理。

什麼是 PHP SimpleXML?

SimpleXML 是 PHP 5 中的新功能。

SimpleXML 擴充功能提供了一種取得 XML 元素的名稱和文字的簡單方式。

與 DOM 或 Expat 解析器相比,SimpleXML 僅用幾行程式碼就可以從 XML 元素中讀取文字資料。

SimpleXML 可將 XML 文件(或 XML 字串)轉換為對象,例如:

·         元素轉換為 SimpleXMLElement 物件的單一屬性。當同一層級上存在多個元素時,它們會被置於陣列中。

·         屬性透過使用關聯數組進行訪問,其中的索引對應屬性名稱。

·         元素內部的文字轉換為字串。如果一個元素擁有多個文字節點,則按照它們被找到的順序進行排列。

當執行類似下列的基礎任務時,SimpleXML 使用起來非常快速:

·         讀取/擷取XML 檔案/字串的資料

·      屬性

然而,在處理進階XML 時,例如命名空間,最好使用Expat 解析器或XML DOM。

安裝

從 PHP 5 開始,SimpleXML 函數是 PHP 核心的組成部分。無需安裝就可以使用這些函數。

PHP SimpleXML 實例

假設我們有如下的XML 文件,"note.xml":

<?xml version="1.0" encoding="ISO-8859-1"?>
 <note>
 <to>Tove</to>
 <from>Jani</from>
 <heading>Reminder</heading>
 <body>Don't forget me this weekend!</body>
 </note>

現在我們想要輸出上面的XML檔案的不同資訊:

實例1

輸出$xml 變數(是SimpleXMLElement 物件)的鍵與元素:

<?php
 $xml=simplexml_load_file("note.xml");
 print_r($xml);
 ?>

以上程式碼將輸出:

SimpleXMLElement Object ( [to] => Tove [from] => Jani [heading] => Reminder [body] => Don't forget me this weekend! )

#實例2

實例2

輸出XML 檔案中每個元素的資料:

<?php
 $xml=simplexml_load_file("note.xml");
 echo $xml->to . "<br>";
 echo $xml->from . "<br>";
 echo $xml->heading . "<br>";
 echo $xml->body;
 ?>

以上程式碼將輸出:

Tove
Jani

Reminder

Don't forget me this weekend!

 

實例3

輸出每個子節點的元素名稱與資料:

<?php
 $xml=simplexml_load_file("note.xml");
 echo $xml->getName() . "<br>";
 
 foreach($xml->children() as $child)
 {
 echo $child->getName() . ": " . $child . "<br>";
 }
 ?>

以上程式碼將輸出:

# note
to: Tove
from: Jani

heading: Reminder

body: Don't forget me this weekend!

 

#更多PHP SimpleXML 的資訊

如需了解更多關於PHP SimpleXML 函數的信息,請造訪我們的 PHP SimpleXML 參考手冊。

######
繼續學習
||
<?php $xml=simplexml_load_file("note.xml"); echo $xml->getName() . "<br>"; foreach($xml->children() as $child) { echo $child->getName() . ": " . $child . "<br>"; } ?>