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

PHP XML 處理三大核心擴充套件深度解析:DOM、XMLReader、XMLWriter 完整 API 速查

     編輯:PHP 相關知識

PHP 提供三種互補的 XML 處理模型:DOM 樹狀模型(隨機存取、修改)、XMLReader 流式拉取模型(低記憶體、單向讀取)、XMLWriter 流式推送模型(高效生成)。本文系統整理三者核心 API、適用場景、效能特性與實戰範例。

一、架構選型指南

維度DOM (DOMDocument)XMLReaderXMLWriter
模型類型樹狀 (DOM Level 3)游標/拉取 (StAX 風格)流式/推送
記憶體佔用O(N) 載入整份文檔O(1) 僅當前節點O(1) 緩衝區輸出
操作方向隨機讀寫、修改、序列化單向前進讀取單向順序寫入
適用場景小/中型文檔、需修改/查詢、XPath大型文檔(>100MB)、串流處理、SAX 遷移生成大型 XML、API 回應、匯出報表
命名空間支援完整完整完整
驗證 (DTD/Schema)schemaValidate / validateisValid / setSchema無 (僅生成)
學習曲線中等較高 (狀態機思維)低

二、DOMDocument 完整 API 速查

1. 載入與儲存

<?php
$dom = new DOMDocument('1.0', 'UTF-8');

// 載入檔案
$dom->load('config.xml');                    // 檔案路徑
$dom->loadXML($xmlString);                   // 字串 (需 XML 宣告)
$dom->loadHTML($htmlString);                 // 寬容 HTML5 (libxml_use_internal_errors)

// 儲存
$dom->save('output.xml');                    // 寫入檔案,返回位元組數
$xmlStr = $dom->saveXML();                   // 序列化整份文檔
$xmlStr = $dom->saveXML($node);              // 序列化特定節點
$dom->formatOutput = true;                   // 美化縮排 (輸出時)
$dom->preserveWhiteSpace = false;            // 載入時移除無意義空白
?>

2. 節點建立與屬性操作

<?php
// 建立元素節點
$elem = $dom->createElement('book', 'PHP 精進'); // 含文字內容
$elem = $dom->createElement('book');             // 空元素
$elem->textContent = 'PHP 精進';                 // 設定文字 (自動實體化)

// 建立屬性
$attr = $dom->createAttribute('isbn');
$attr->value = '978-7-115-12345-6';
$elem->appendChild($attr);
// 或捷徑
$elem->setAttribute('isbn', '978-7-115-12345-6');
$elem->setAttributeNS('https://ns.example.com', 'ex:price', '299');

// 建立文字/CDATA/註釋/處理指令
$text = $dom->createTextNode('含 < 特殊字元 >'); // 自動跳脫
$cdata = $dom->createCDATASection('原始 
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved