SimpleXML将XML转为对象便于操作,支持从字符串或文件加载数据,可通过对象语法访问元素与属性,遍历同名节点,修改内容并输出为XML字符串或文件。

SimpleXML 是 PHP 中处理 XML 数据的内置扩展,它把 XML 文档转换成一个可以像对象一样操作的数据结构,使用起来非常直观和方便。适合读取、遍历和修改简单的 XML 内容。
加载 XML 数据
使用 SimpleXML 前,需要先将 XML 数据加载为对象。支持从字符串或文件加载。
- simplexml_load_string():从字符串解析 XML
- simplexml_load_file():从文件路径加载 XML
示例:
$xmlString = ''; $sxe = simplexml_load_string($xmlString); if ($sxe === false) { die('无法解析 XML'); } PHP Basics John Doe 29.99
访问元素和属性
SimpleXML 允许通过对象语法访问标签内容和属性。
立即学习“PHP免费学习笔记(深入)”;
获取元素值:直接用 -> 访问子节点
echo $sxe->book->title; // 输出: PHP Basics echo $sxe->book->author; // 输出: John Doe
获取属性:使用 attributes() 方法或数组语法
// 获取节点属性 $category = $sxe->book['category']; echo $category; // 输出: fiction // 获取 title 的 lang 属性 $lang = $sxe->book->title['lang']; echo $lang; // 输出: en
遍历多个同名节点
当有多个相同标签时,可将其当作数组遍历。
$xml = ''; $sxe = simplexml_load_string($xml); foreach ($sxe->book as $book) { echo $book->title . "\n"; } // 输出: // PHP Guide // MySQL Tips PHP Guide MySQL Tips
修改 XML 内容
可以直接赋值修改节点内容或属性。
$sxe->book->title = 'Advanced PHP'; $sxe->book['category'] = 'programming'; echo $sxe->asXML(); // 输出修改后的 XML
输出 XML
使用 asXML() 方法可将对象重新转为 XML 字符串或保存到文件。
// 输出字符串
echo $sxe->asXML();
// 保存到文件
$sxe->asXML('output.xml');
基本上就这些。SimpleXML 简单易用,适合大多数常规 XML 操作场景,不需要复杂的 DOM 或正则处理。注意确保 XML 格式正确,否则加载会失败。










