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

PHP SimpleXML 函數完整用法解析:XML 轉物件與 XPath 查詢

     編輯:PHP 綜合知識

PHP SimpleXML 擴充套件將 XML 文件轉為物件,支援屬性存取、陣列迭代、XPath 查詢,是處理 XML 資料的利器。本文完整整理核心函數、常用操作與實戰範例。

核心載入函數

函數用途
simplexml_load_file()從檔案載入 XML 回傳 SimpleXMLElement 物件
simplexml_load_string()從字串載入 XML
simplexml_import_dom()從 DOMDocument 節點轉換

實戰範例:解析單字資料 XML

<?php
// 載入 XML 檔案
$lib = simplexml_load_file("cet4.xml");

// 取得所有 item 節點(轉為陣列迭代)
$items = $lib->item;
$count = count($items);

for ($i=0; $i<$count; $i++) {
    $word = $items[$i];
    echo $word->word . '-----' . $word->trans . '-----' . $word->phonetic . '<br/>';
}

// XPath 查詢:取得所有 word 節點
$words = $lib->xpath("//word");

// 取得屬性值
echo $words[0]['add'] . '<br/>';  // 屬性 add
echo $items[0]['pp'];              // 屬性 pp
?>

完整函數參考表

函數/方法描述PHP 版本
__construct()建立新 SimpleXMLElement 物件5
addAttribute()新增屬性5
addChild()新增子元素5
asXML()輸出 XML 字串5
attributes()取得元素屬性5
children()取得子節點5
getDocNamespaces()取得文件命名空間5
getName()取得元素名稱5
getNamespaces()取得資料命名空間5
registerXPathNamespace()註冊 XPath 命名空間5
xpath()執行 XPath 查詢5

常見操作模式

<?php
$xml = simplexml_load_string($xmlString);

// 1. 存取子元素(屬性式)
echo $xml->title;

// 2. 存取屬性
echo $xml->book['id'];

// 3. 迴圈子元素
foreach ($xml->book as $book) {
    echo $book->title;
}

// 4. XPath 查詢
$results = $xml->xpath("//book[@category='tech']");

// 5. 新增元素與屬性
$xml->addChild('book', 'New Title')->addAttribute('id', '999');

// 6. 輸出 XML
header('Content-Type: text/xml');
echo $xml->asXML();
?>

注意事項

  • SimpleXML 物件無法直接 var_dump 觀察完整結構,建議用 $xml->asXML() 輸出字串檢視
  • 大型 XML 檔案記憶體佔用高,考慮使用 XMLReader 流式解析
  • 命名空間處理需搭配 registerXPathNamespace 或 children('ns', true)
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved