PHP简单实现解析XML为数组的方法
XML数据在网站开发中使用非常广泛,将XML数据解析成PHP数组是很常见的需求。本文介绍如何使用PHP简单地实现解析XML为数组的方法。
使用SimpleXML解析XML
PHP的SimpleXML扩展可以用来从一个字符串或一个文件中读取XML数据,并将其转换为一个PHP对象(也可以使用json_decode()将JSON数据转换为PHP数组)。使用SimpleXML解析XML非常简单,只需要几行代码:
$xml = simplexml_load_string($xmlString);
$array = json_decode(json_encode($xml), TRUE);
其中,simplexml_load_string()函数从一个字符串中加载XML数据,然后使用json_encode()将PHP对象转换为JSON字符串,最后使用json_decode()将JSON字符串转换为PHP数组。
从XML文件中解析XML
通常我们将XML数据保存在XML文件中,在PHP中从XML文件中解析XML数据也很简单,只需要用simplexml_load_file()函数代替simplexml_load_string()函数:
$xml = simplexml_load_file('data.xml');
$array = json_decode(json_encode($xml), TRUE);
其中,simplexml_load_file()函数接受XML文件的路径作为参数。
示例1
下面是一个使用SimpleXML解析XML的示例,假设XML数据的内容如下:
<students>
<student>
<id>1</id>
<name>Alice</name>
<age>18</age>
<gender>female</gender>
</student>
<student>
<id>2</id>
<name>Bob</name>
<age>19</age>
<gender>male</gender>
</student>
</students>
以下是如何将XML数据解析为PHP数组:
$xmlString = "
<students>
<student>
<id>1</id>
<name>Alice</name>
<age>18</age>
<gender>female</gender>
</student>
<student>
<id>2</id>
<name>Bob</name>
<age>19</age>
<gender>male</gender>
</student>
</students>
";
$xml = simplexml_load_string($xmlString);
$array = json_decode(json_encode($xml), TRUE);
print_r($array);
输出结果:
Array
(
[student] => Array
(
[0] => Array
(
[id] => 1
[name] => Alice
[age] => 18
[gender] => female
)
[1] => Array
(
[id] => 2
[name] => Bob
[age] => 19
[gender] => male
)
)
)
示例2
下面是一个从XML文件中解析XML数据的示例,假设XML文件的内容如下:
<students>
<student>
<id>1</id>
<name>Alice</name>
<age>18</age>
<gender>female</gender>
</student>
<student>
<id>2</id>
<name>Bob</name>
<age>19</age>
<gender>male</gender>
</student>
</students>
以下是如何将XML文件解析为PHP数组:
$xml = simplexml_load_file('data.xml');
$array = json_decode(json_encode($xml), TRUE);
print_r($array);
输出结果与示例1相同:
Array
(
[student] => Array
(
[0] => Array
(
[id] => 1
[name] => Alice
[age] => 18
[gender] => female
)
[1] => Array
(
[id] => 2
[name] => Bob
[age] => 19
[gender] => male
)
)
)
总结
使用SimpleXML扩展可以非常简单地将XML数据解析为PHP数组。这种方法适用于XML数据比较简单的情况。对于较为复杂的XML数据,建议使用DOM扩展进行解析。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:PHP简单实现解析xml为数组的方法 - Python技术站