首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

PHP SimpleXML 操作指南:輕鬆解析與生成 XML

     編輯:PHP 相關知識

SimpleXML 是 PHP 5 起內建的 XML 處理擴展,以直觀的物件導向方式將 XML 文件轉為可遍歷的物件樹,極大簡化了讀取、查詢、修改與生成 XML 的工作。

核心特性

  • 零配置: PHP 核心內建,無需額外安裝。
  • 物件映射: XML 元素自動映射為物件屬性,屬性值對應 @attributes。
  • XPath 支援: 內建 xpath() 方法,支援複雜查詢。
  • 互操作性: 可與 DOMDocument 相互轉換,彈性應對複雜需求。

基本操作範例

1. 載入 XML

$xml = simplexml_load_file('data.xml'); // 從檔案
$xml = simplexml_load_string($xmlString); // 從字串

2. 讀取資料

echo $xml->book[0]->title; // 存取子元素
echo $xml->book[0]['isbn']; // 存取屬性
foreach ($xml->book as $book) {
    echo $book->title . ' - ' . $book->author;
}

3. XPath 查詢

$results = $xml->xpath('//book[@category="tech"]/title');
foreach ($results as $title) echo $title;

4. 修改與新增

$xml->book[0]->title = '新標題';
$newBook = $xml->addChild('book');
$newBook->addChild('title', 'PHP 進階');
$newBook->addAttribute('category', 'programming');

5. 輸出 XML

header('Content-Type: application/xml');
echo $xml->asXML(); // 直接輸出
$xml->asXML('new_data.xml'); // 存檔

進階技巧

  • 命名空間處理: 使用 children('ns', true) 或 registerXPathNamespace()。
  • 大型檔案優化: SimpleXML 會將整份文件載入記憶體,超大檔案建議改用 XMLReader(拉式解析)。
  • 編碼注意: 確保 XML 宣告編碼與 PHP 內部編碼(UTF-8)一致,避免亂碼。

適用場景與限制

適合中小型 XML 文件、配置檔、API 回應(RSS、SOAP 簡易版)的快速開發。若需高效能串流處理、複雜 XSLT 轉換或混合內容模型,請改用 DOM 或 XMLReader/XMLWriter。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved