simplexml_load_file() 是 PHP 解析 XML 檔案最簡便的函式,直接將 XML 文件轉換為 SimpleXMLElement 物件,支援屬性存取、XPath 查詢、迭代子節點等操作。
<?php
$xml = simplexml_load_file('sample.xml');
if ($xml === false) {
die('XML 載入失敗');
}
// 直接輸出格式化 XML
header('Content-Type: text/xml');
echo $xml->asXML();
?>
<library>
<book>
<title>A</title>
<author gender="female">B</author>
<description>C</description>
</book>
<book>
<title>C</title>
<author gender="male">D</author>
<description>E</description>
</book>
<book>
<title>F</title>
<author gender="male">G</author>
<description>H</description>
</book>
</library>
foreach ($xml->book as $book) {
echo "標題: {$book->title}\n";
echo "作者: {$book->author} (性別: {$book->author['gender']})\n";
echo "描述: {$book->description}\n---\n";
}
$femaleAuthors = $xml->xpath('//book/author[@gender="female"]');
foreach ($femaleAuthors as $author) {
echo "女性作者: $author\n";
}
$firstBook = $xml->book[0];
echo $firstBook->author['gender']; // female
libxml_use_internal_errors(true) 捕捉解析錯誤,避免直接輸出警告。XMLReader 流式解析,避免記憶體耗盡。<?xml version="1.0" encoding="UTF-8"?> 與實際編碼一致。SimpleXML 是中小型 XML 處理的首選,語法直觀、功能完備。