PHP XML 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>
<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);
?>
$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
輸出XML 文件中每個元素的數據:
<?php
$xml=simplexml_load_file("note.xml");
echo $xml->to . "<br>";
echo $xml->from . "<br>";
echo $xml->heading . "<br>";
echo $xml->body;
?>
$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!
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>";
}
?>
$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!
to: Tove
from: Jani
heading: Reminder
body: Don't forget me this weekend!
更多PHP SimpleXML 的信息
如需了解更多關於PHP SimpleXML函數的信息,請訪問我們的PHP SimpleXML參考手冊 。