SimpleXML解析器是PHP 中一个简单易用的 XML 解析扩展,它将 XML 文档转换为对象,使开发人员能够通过对象属性或数组索引来访问 XML 数据。

SimpleXML解析器可以把XML文档转化成一棵对象树,我们可以通过对象属性来访问元素,通过数组的方式来访问多个同名元素,使得XML文档操作更加直观具体!

想要知道PHP是否存在SimpleXML,我们可以通过extension_loaded('SimpleXML')函数来进行检测,true为存在;反之。

<?php 
if(extension_loaded("simplexml"))echo 'simplexml已安装!';
?>

将php脚本粘贴至test.php,保存并访问;

extension_loaded("simplexml")函数

if判断为true,证明我们的simplexml已安装。

我们可以从字符串、文件等加载XML数据。


1. 从字符串加载XML数据——simplexml_load_string()函数返回一个SimpleXMLElement 对象(可以理解为PHP中的特殊对象)

<?php 
//1. 准备一个xml字符串
$mxlStr=<<<Dotcpp
<?xml version='1.0' encoding='UTF-8'?>
<dotcpp>
<brand>Dotcpp编程</brand>
<website>dotcpp.com</website>
<course>PHP教程</course>
</dotcpp>
Dotcpp;
//2. 通过simplexml_load_string()将xml字符串转为
$xml=simplexml_load_string($mxlStr);
//3. 把$xml当对象使用
echo $xml->brand.'<br>';
echo $xml->website.'<br>';
echo $xml->course.'<br>';
?>

将php脚本粘贴至test.php,保存并访问;

simplexml_load_string()函数

可以看到,我们通过“->”访问对象属性的方式获取xmlStr字符串中的数据。


2. 从文件加载:

2.1 同级目录下先准备一个Dotcpp.xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<dotcpp>
    <brand>Dotcpp编程</brand>
    <website>dotcpp.com</website>
    <course>PHP教程</course>
    <courses>
        <course id="1">PHP基础</course>
        <course id="2">PHP高级</course>
        <course id="3">PHP框架</course>
    </courses>
</dotcpp>

2.2 加载并访问xml数据——simplexml_load_file()函数

<?php 
//1. 加载xml文件
$xml=simplexml_load_file(__DIR__ ."/dotcpp.xml");
//2. 把$xml当对象使用
echo $xml->brand.'<br>';
echo $xml->website.'<br>';
echo $xml->course.'<br>';
foreach ($xml->courses->course as $item) {
echo $item.'<br>';
}
?>

将php脚本粘贴至test.php,保存并访问;

simplexml_load_file(dotcpp.xml)函数

可以看到,我们通过“->”访问我们的xml属性,并通过foreach()循环打印courses下的所有course。


总结:通过SimpleXML解析器我们可以从字符串或是文件获取xml数据。

点赞(0)

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

Dotcpp在线编译      (登录可减少运行等待时间)