在 PHP 處理 XML 資料時,XPath 是快速定位特定元素或節點的利器。本文透過完整範例,示範如何建立 DOMXPath 物件並使用 query() 方法精準抓取所需資料,適合初學者快速上手。
載入 XML 並建立 DOMDocument 後,即可實例化 DOMXPath:
$xpath = new DOMXPath($xmldoc);
接著呼叫 query() 並傳入 XPath 路徑表達式,即可取得 DOMNodeList 物件:
$node_list = $xpath->query("xpath路徑表達式");
<?xml version="1.0" encoding="utf-8"?>
<words>
<word>
<en>boy</en>
<ch>男孩</ch>
</word>
<word>
<en>girl</en>
<ch>女孩</ch>
</word>
<word>
<en>teacher</en>
<ch>老師</ch>
</word>
<word>
<en>beauty</en>
<ch>美女</ch>
</word>
</words>
<?php
$xmldoc = new DOMDocument();
$xmldoc->load("words.xml");
$xpath = new DOMXPath($xmldoc);
$node_list = $xpath->query("/words/word/ch"); // 取得所有中文釋義
echo $node_list->item(0)->nodeValue; // 輸出:男孩
?>
//word[en='teacher']/ch 可直接定位特定單字的中文釋義。DOMNodeList 的 length 屬性與 item() 方法,可輕鬆遍歷所有符合條件的節點。registerNamespace() 註冊前綴再查詢。掌握 XPath,能大幅簡化 XML 解析邏輯,提升 PHP 處理結構化資料的效率與可讀性。