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

PHP 讀寫 XML 完全指南:DOMDocument 解析與生成實戰

     編輯:PHP 相關知識

PHP 讀寫 XML 完全指南

XML 是結構化數據交換的標準格式。PHP DOMDocument 提供強大的樹形 API,支持載入、查詢、創建、修改、輸出 XML。本文通過實戰代碼演示核心操作。

1. DOM 讀取 XML

$doc = new DOMDocument();
$doc->load('books.xml');

$books = $doc->getElementsByTagName('book');
foreach ($books as $book) {
    $author   = $book->getElementsByTagName('author')->item(0)->nodeValue;
    $publisher= $book->getElementsByTagName('publisher')->item(0)->nodeValue;
    $title    = $book->getElementsByTagName('title')->item(0)->nodeValue;
    echo "$title - $author - $publisher\n";
}

關鍵點:getElementsByTagName 返回 DOMNodeList,item(0) 取首個節點,nodeValue 獲取文本內容。

2. DOM 生成 XML

$books = [
    ['title' => 'PHP Hacks', 'author' => 'Jack Herrington'],
];

$doc = new DOMDocument();
$doc->formatOutput = true; // 美化縮進

$root = $doc->createElement('books');
$doc->appendChild($root);

foreach ($books as $book) {
    $b = $doc->createElement('book');
    $author = $doc->createElement('author');
    $author->appendChild($doc->createTextNode($book['author']));
    $b->appendChild($author);

    $title = $doc->createElement('title');
    $title->appendChild($doc->createTextNode($book['title']));
    $b->appendChild($title);

    $root->appendChild($b);
}

echo $doc->saveXML(); // 或 $doc->save('books.xml') 寫文件

核心模式:createElement 創建節點 → createTextNode 創建文本 → appendChild 組裝父子關係 → saveXML/save 輸出。

3. 進階技巧

  • 命名空間:createElementNS()、setAttributeNS()
  • XPath 查詢:$xpath = new DOMXPath($doc); $nodes = $xpath->query('//book[@id=1]');
  • 異常處理:libxml_use_internal_errors(true) 抑制警告,libxml_get_errors() 獲取錯誤詳情。
  • 大文件流式處理:XMLReader/XMLWriter 避免全量載入內存。

掌握 DOMDocument,輕松應對 API 對接、配置文件、數據遷移等 XML 場景。

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