萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 程式設計 >  >> 網路程式設計 >> PHP 程式設計

PHP DOM 產生 XML 範例:圖書資料結構輸出

前言

PHP 內建 DOMDocument 類別提供標準化的 XML 操作介面。本文示範如何將陣列資料轉換為結構化的 XML 文件,並啟用格式化輸出,方便除錯與對接 API。

完整程式碼

<?php
$books = [];
$books[] = [
    'title'     => 'PHP Hacks',
    'author'    => 'Jack Herrington',
    'publisher' => "O'Reilly"
];
$books[] = [
    'title'     => 'Podcasting Hacks',
    'author'    => 'Jack Herrington',
    'publisher' => "O'Reilly"
];

$doc = new DOMDocument();
$doc->formatOutput = true;  // 產生縮排易讀的 XML

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

foreach ($books as $book) {
    $bookElem = $doc->createElement('book');

    $author = $doc->createElement('author');
    $author->appendChild($doc->createTextNode($book['author']));
    $bookElem->appendChild($author);

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

    $publisher = $doc->createElement('publisher');
    $publisher->appendChild($doc->createTextNode($book['publisher']));
    $bookElem->appendChild($publisher);

    $root->appendChild($bookElem);
}

echo $doc->saveXML();

輸出結果

<?xml version="1.0"?>
<books>
  <book>
    <author>Jack Herrington</author>
    <title>PHP Hacks</title>
    <publisher>O'Reilly</publisher>
  </book>
  <book>
    <author>Jack Herrington</author>
    <title>Podcasting Hacks</title>
    <publisher>O'Reilly</publisher>
  </book>
</books>

關鍵點說明

  1. formatOutput = true:輸出時自動縮排換行,預設為緊湊模式。
  2. createElement() 建立節點,createTextNode() 建立文字節點,再用 appendChild() 串接樹狀結構。
  3. 特殊字元(如 &、<、>、引號)會自動轉義為實體,安全可靠。
  4. saveXML() 回傳字串;若需直接存檔可用 save('books.xml')。

延伸應用

  • 搭配 DOMXPath 進行查詢與修改。
  • 輸出前可加入 header('Content-Type: application/xml; charset=utf-8'); 供瀏覽器正確顯示。
  • 大量資料時建議分批寫入或改用 XMLWriter 串流模式,降低記憶體佔用。
copyright © 萬盛學電腦網 all rights reserved