PHP XML 学习笔记

什么是 XML

XML 指可扩展标记语言(eXtensible Markup Language),用于存储和传输数据。它是一种标记语言,类似于 HTML。

XML 设计的目的是传输数据,而不是显示数据。因此 XML 标签没有预定义的标签,需要自行进行定义。

PHP 中的 XML

PHP 提供了几个内置的 XML 扩展,可以用于解析和生成 XML 文档。

解析 XML

PHP 中解析 XML 文档的方法有很多,其中比较常用的是 SimpleXML 扩展。以下是一个示例:

phpCopy Code
$xml_string = "<root><foo>bar</foo></root>"; $xml = simplexml_load_string($xml_string); echo $xml->foo; // 输出 "bar"

生成 XML

要在 PHP 中生成 XML 文档,可以使用 XMLWriter 扩展。以下是一个示例:

phpCopy Code
$xml = new XMLWriter(); $xml->openMemory(); $xml->startDocument(); $xml->startElement('root'); $xml->writeElement('foo', 'bar'); $xml->endElement(); $xml->endDocument(); echo $xml->outputMemory(); // 输出 "<root><foo>bar</foo></root>"

实例

以下是一个示例,演示如何从 XML 文件中读取数据,并将其转换为 PHP 数组:

XML 文件

xmlCopy Code
<?xml version="1.0" encoding="UTF-8"?> <students> <student> <name>张三</name> <age>18</age> <gender></gender> </student> <student> <name>李四</name> <age>19</age> <gender></gender> </student> </students>

PHP 代码

phpCopy Code
$xml = simplexml_load_file('students.xml'); $json = json_encode($xml); $array = json_decode($json, true); print_r($array);

输出结果:

Copy Code
Array ( [student] => Array ( [0] => Array ( [name] => 张三 [age] => 18 [gender] => 男 ) [1] => Array ( [name] => 李四 [age] => 19 [gender] => 女 ) ) )

这个示例演示了如何使用 PHP 中的 SimpleXML 扩展读取 XML 文件,并将其转换为数组进行处理。