手册目录

PHP课程

浏览10512
更新时间2025-08-06

SimpleXML 解析器

SimpleXML 是一个基于树的解析器。

如果您知道 XML 文档的结构或布局,SimpleXML 提供了一种简单的方法来获取元素的名称、属性和文本内容。

SimpleXML 将 XML 文档转换为您可以像数组和对象的集合一样遍历的数据结构。

与 DOM 或 Expat 解析器相比,SimpleXML 使用更少的代码行从元素中读取文本数据。

安装

从 PHP 5 开始,SimpleXML 函数是 PHP 核心的一部分。使用这些函数不需要安装。

PHP SimpleXML - 从字符串中读取

PHP 的 simplexml_load_string() 函数用于从字符串中读取XML数据。

假设我们有一个包含 XML 数据的变量,如下所示:

$myXMLData =
"<?xml version='1.0' encoding='UTF-8'?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>";

下面的例子显示了如何使用 simplexml_load_string() 函数从字符串中读取 XML 数据:

实例

<?php
$myXMLData =
"<?xml version='1.0' encoding='UTF-8'?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>";

$xml=simplexml_load_string($myXMLData) or die("错误:无法创建对象");
print_r($xml);
?>

运行实例

上述代码的输出将是:

SimpleXMLElement Object ( [to] => Tove [from] => Jani [heading] => Reminder [body] => Don't forget me this weekend! )

有关错误处理提示:在加载文档时,请使用 libxml 功能检索所有 XML 错误,然后遍历错误。

下例尝试加载损坏的 XML 字符串:

实例

<?php
libxml_use_internal_errors(true);
$myXMLData =
"<?xml version='1.0' encoding='UTF-8'?>
<document>
<user>Bill Gates</wronguser>
<email>john@example.com</wrongemail>
</document>";

$xml = simplexml_load_string($myXMLData);
if ($xml === false) {
  echo "Failed loading XML: ";
  foreach(libxml_get_errors() as $error) {
    echo "<br>", $error->message;
  }
} else {
  print_r($xml);
}
?>

运行实例

上述代码的输出将是:

Failed loading XML:
Opening and ending tag mismatch: user line 3 and wronguser
Opening and ending tag mismatch: email line 4 and wrongemail

PHP SimpleXML - 从文件中读取

PHP 的 simplexml_load_file() 函数用于从文件中读取 XML 数据。

假设我们有一个名为 "note.xml" 的 XML 文件,如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<note>
  <to>Tove</to>
  <from>Jani</from>
  <heading>Reminder</heading>
  <body>Don't forget me this weekend!</body>
</note>

下面的例子显示了如何使用 simplexml_load_file() 函数从文件中读取 XML 数据:

实例

<?php
$xml=simplexml_load_file("note.xml") or die("错误:无法创建对象");
print_r($xml);
?>

运行实例

上述代码的输出将是:

SimpleXMLElement Object ( [to] => Tove [from] => Jani [heading] => Reminder [body] => Don't forget me this weekend! )

提示:下一章将讲解如何使用 SimpleXML 从 XML 文件中获取/检索节点值!

PHP SimpleXML 参考手册

如需有关 PHP SimpleXML 函数的更多信息,请访问我们的 PHP SimpleXML 参考手册。

相关视频

更多

免费

php8,我来也
初级php8,我来也

321832次学习

收藏

免费

Thinkphp6.0正式版视频教程
中级Thinkphp6.0正式版视频教程

382457次学习

收藏

免费

细说PHP第一季
中级细说PHP第一季

282835次学习

收藏

免费

简单聊聊PHP创业那点事
初级简单聊聊PHP创业那点事

13418次学习

收藏

精品课程

更多
前端入门_HTML5
前端入门_HTML5

共29课时 | 62.5万人学习

CSS视频教程-玉女心经版
CSS视频教程-玉女心经版

共25课时 | 39.7万人学习

JavaScript极速入门_玉女心经系列
JavaScript极速入门_玉女心经系列

共43课时 | 73.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号