

新闻资讯
技术学院SimpleXML 是 PHP 内置轻量级 XML 解析扩展,将 XML 元素映射为对象属性,支持 simplexml_load_file() 和 simplexml_load_string() 加载数据,需强制 (string) 转换输出,可处理命名空间与 XPath 查询,但不支持写入和超大文件。
SimpleXML 是 PHP 内置的轻量级 XML 处理扩展,适合读取结构清晰、格式规范的 XML 数据。它把 XML 元素自动转为对象属性,用起来像访问数组或对象一样直观,不用写一堆 DOM 节点遍历代码。
用 simplexml_load_file() 直接读取本地 XML 文件,或用 simplexml_load_string() 解析 XML 字符串。两者都返回 SimpleXMLElement 对象,失败时返回 false,建议加判断:
$xml = simplexml_load_file('data.xml') ?: die('无法加载 XML');
$xml = simplexml_load_string($raw_xml) ?: throw new Exception('XML 格式错误');
LIBXML_NOERROR | LIBXML_NOWARNING 参数可抑制警告,再配合 libxml_get_errors() 查错。XML 标签名变成对象属性,同名多个节点会自动转为数组。属性用 ->attributes() 方法获取,返回可遍历的对象:
$xml->book->title(返回第一个 title 文本)foreach ($xml->book as $book) { echo (string)$book->author; }(string)$book['id'] 或 (string)$book->attributes()->id(string) 类型转换,否则可能报 Notice 或输出空白。带命名空间(如 )的 XML 需先调用 getNamespaces() 获取前缀映射,再用 children() 切换上下文:
$ns = $xml->getNamespaces(true); // 返回 ['dc' => 'http://...']$dc = $xml->children($ns['dc']);echo (string)$dc->creator;SimpleXML 不支持修改、不支持 XPath 1.0 全功能(但支持基础 XPath 查询),也不适合超大 XML 文件(内存占用高)。实际使用中注意:
),PHP 脚本也用 UTF-8 保存。)?用花括号语法:$xml->{'last-name'}$titles = $xml->xpath('//book/title');