XML
XML
什么是XML?
XML(可扩展标记语言)是一种用于存储和传输数据的标记语言。它被设计为具有自我描述性(标签自定义),具有良好的可读性,并且可用于各种应用程序和平台。
基本语法
必须有根节点
<root>
......
</root>
头声明可有可无
<?xml version="版本号" encoding="字符集" ?>
所有XML元素都必须是成对标签
标签名大小写敏感
标签不能交叉书写,例如:
<a>test<b></a></b>
特殊字符使用实体转义
属性
属性就是表示标签自身的一些额外信息
<root>
<people>
<name age="18">Cristrik010</name>
</people>
</root>
属性规则:
一个标签可以有多个属性,属性的值必须使用引号包裹
命名只能使用数字字母下划线,数字不能开头
CDATA
当我们的数据量很大时,就不可避免会出现很多特殊字符,但是我们替换成实体又很麻烦。所以使用CDATA就能方便很多。
<![CDATA[ 这里面的数据不会被解析,也就不会报错! ]]>
使用PHP解析XML文档
在PHP5
版本之后提供了一个强大的库:SimpleXML类库
,专门用于实现对XML文档进行解析。
<?php
$a = simplexml_load_file('文件地址'); //解析XML文档,返回PHP对象
?>
原理
PHP解析XML分为3步:
读取XML文档到内存中
形成DOM树,树中同层且标签名相同的以数组形式存储。
由DOM树生成对象并返回
例如:
<root>
<people>
<name>test1</name>
<age>18</age>
</people>
<people>
<name>test2</name>
<age>19</age>
</people>
</root>
这里画了两个图方便理解:
遍历XML数据
<?php
$a = simplexml_load_file();
// 方法一:
foreach($a->people as $b){
echo $b->name;
}
// 方法二:
for($i = 0;$i < count($a->people);$i++){
echo $a->people[$i]->name;
}
?>
添加节点
<?php
$a = simplexml_load_file('test.xml');
$test = $a->addChild('people');
$test->addChild('name','Cristrik010');
$test->addChild('age','18');
// 保存到xml文件中
$a->asXML('test.xml');
Xpath语言
什么是Xpath?
XPath(XML Path Language)是一种用于在 XML 文档中定位和选择节点的查询语言。它提供了一种简洁而强大的方式来遍历 XML 树并从中提取数据。
一个简单的使用
<?php
$a = simplexml_load_file('test.xml');
$b = $a->xpath('/root/people/name'); // 绝对路径
foreach($b as $c){
echo $c;
}
语法规则
绝对路径
$b = $a->xpath('//name');
相对路径
$b = $a->xpath('/root/people/name');
通配符
// 匹配people节点下的所有子节点
$b = $a->xpath('//people/*');
最后一个节点
$b = $a->xpath('//people[last()]');
条件查找
$b = $a->xpath('//people[age>100]');
// 寻找带有属性的标签,例如:<people test=""></people>
$b = $a->xpath('//people[@test]');
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 Cristrik010
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果