承接 DOM 基礎操作,示範如何在既有 XML 中新增完整的學生記錄:建立元素節點、設定屬性、賦予文字內容、逐層掛載至 DOM 樹,最後持久化儲存。
<?php
// 1. 建立 DOMDocument 並載入 XML
$xmldoc = new DOMDocument();
$xmldoc->load("class.xml");
// 2. 取得根節點 <class>
$root = $xmldoc->getElementsByTagName("class")->item(0);
// 3. 建立新學生節點結構
$stu_node = $xmldoc->createElement("student");
$stu_node->setAttribute("id", "大美女"); // 設定屬性
// 3.1 建立子節點並設定內容
$name = $xmldoc->createElement("name", "大喬");
$sex = $xmldoc->createElement("sex", "女");
$age = $xmldoc->createElement("age", "25");
// 3.2 子節點掛載至 student
$stu_node->appendChild($name);
$stu_node->appendChild($sex);
$stu_node->appendChild($age);
// 4. student 掛載至根節點
$root->appendChild($stu_node);
// 5. 儲存變更(可存新檔避免覆蓋原檔)
// $xmldoc->save("class.xml");
?>
| 方法 | 用途 |
|---|---|
createElement($tag, $value) | 建立元素節點,第二參數可直接設定文字內容 |
setAttribute($name, $value) | 為元素新增/修改屬性 |
appendChild($node) | 將子節點掛載至父節點,維持樹狀結構 |
save($filename) | 將 DOM 樹序列化寫入檔案 |
<class> ← $root
└─ <student id="大美女"> ← $stu_node
├─ <name>大喬</name> ← $name
├─ <sex>女</sex> ← $sex
└─ <age>25</age> ← $age
$xmldoc->formatOutput = true; 讓輸出 XML 縮排易讀。掌握「建立 → 設定屬性/內容 → 掛載 → 儲存」四步驟,即可靈活擴充 XML 資料結構。