<?php
// 将 XML 转换为数组的示例代码
function xmlToArray($xmlString) {
// 将 XML 字符串转换为 SimpleXMLElement 对象
$xml = simplexml_load_string($xmlString);
// 定义递归函数将 SimpleXMLElement 对象转换为数组
function xmlObjToArray($xmlObj) {
$arr = [];
foreach ($xmlObj as $key => $value) {
// 如果子元素是对象,则递归处理
if (gettype($value) === 'object') {
$subArray = xmlObjToArray($value);
// 如果同名元素有多个,确保它们以数组形式存储
if (array_key_exists($key, $arr)) {
if (!is_array($arr[$key])) {
$arr[$key] = [$arr[$key]];
}
$arr[$key][] = $subArray;
} else {
$arr[$key] = $subArray;
}
} else {
// 否则直接存储值
$arr[$key] = (string)$value;
}
}
return $arr;
}
// 调用递归函数并返回结果
return xmlObjToArray($xml);
}
// 示例 XML 字符串
$xmlString = '<?xml version="1.0" encoding="UTF-8"?>
<root>
<item id="1">
<name>Item 1</name>
<price>10.99</price>
</item>
<item id="2">
<name>Item 2</name>
<price>15.49</price>
</item>
</root>';
// 调用函数并将结果打印出来
$array = xmlToArray($xmlString);
print_r($array);
?>
simplexml_load_string($xmlString):将 XML 字符串解析为 SimpleXMLElement 对象。xmlObjToArray($xmlObj):这是一个递归函数,用于将 SimpleXMLElement 对象转换为 PHP 数组。它遍历每个 XML 元素,并根据其类型(对象或值)进行相应的处理。print_r($array):最后,使用 print_r 函数输出转换后的数组,以便查看结果。这段代码展示了如何将 XML 数据转换为 PHP 数组,适用于需要处理 XML 数据并将其转换为更易操作的数据结构的场景。
上一篇:php 换行符
下一篇:php 数组反转
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站