Php 解析多级 - xml 成数组
Php parse multilevel - xml into array
我正在尝试将 xml 转换为 php 数组,但不知何故我做错了,有人可以帮我吗?
这里是 xml 甲酸盐:
<Department Id="3">
<Week Date="23/03/2020">
<Class DateTime="23/03/2020 18:00"/>
<Class DateTime="23/03/2020 18:45"/>
</Week>
<Week Date="30/03/2020">
<Class DateTime="30/03/2020 18:00"/>
<Class DateTime="30/03/2020 18:45"/>
</Week>
</Department>
输出需要这样:
Array
(
[0] => Array
(
[0] => Array
(
[DateTime] => 23/03/2020 18:00
)
[1] => Array
(
[DateTime] => 23/03/2020 18:45
)
)
[1] => Array
(
[0] => Array
(
[DateTime] => 30/03/2020 18:00
)
[1] => Array
(
[DateTime] => 30/03/2020 18:45
)
)
)
这是我试过的
foreach ($xml->children() as $week) {
foreach ($week->children() as $class) {
$j = 0;
foreach ($class->attributes() as $a => $b){
$results[$i][$j][$a] = (string) $b;
}
$j++;
}
$i++;
}
我不知道我的代码有什么问题:(
这只是在 XML 中获得正确级别以匹配循环的情况,这一次构建了一周的数据并将其添加到总体结果中...
$results = [];
foreach ( $xml->Week as $week ) {
$weekData = [];
foreach ( $week->Class as $class ) {
$weekData[]['DateTime'] = (string)$class['DateTime'];
}
$results[] = $weekData;
}
要加载所有属性...
$results = [];
foreach ( $xml->Week as $week ) {
$weekData = [];
foreach ( $week->Class as $class ) {
$classData = [];
foreach ( $class->attributes() as $name => $value ) {
$classData[$name] = (string)$value;
}
$weekData[] = $classData;
}
$results[] = $weekData;
}
我正在尝试将 xml 转换为 php 数组,但不知何故我做错了,有人可以帮我吗?
这里是 xml 甲酸盐:
<Department Id="3">
<Week Date="23/03/2020">
<Class DateTime="23/03/2020 18:00"/>
<Class DateTime="23/03/2020 18:45"/>
</Week>
<Week Date="30/03/2020">
<Class DateTime="30/03/2020 18:00"/>
<Class DateTime="30/03/2020 18:45"/>
</Week>
</Department>
输出需要这样:
Array
(
[0] => Array
(
[0] => Array
(
[DateTime] => 23/03/2020 18:00
)
[1] => Array
(
[DateTime] => 23/03/2020 18:45
)
)
[1] => Array
(
[0] => Array
(
[DateTime] => 30/03/2020 18:00
)
[1] => Array
(
[DateTime] => 30/03/2020 18:45
)
)
)
这是我试过的
foreach ($xml->children() as $week) {
foreach ($week->children() as $class) {
$j = 0;
foreach ($class->attributes() as $a => $b){
$results[$i][$j][$a] = (string) $b;
}
$j++;
}
$i++;
}
我不知道我的代码有什么问题:(
这只是在 XML 中获得正确级别以匹配循环的情况,这一次构建了一周的数据并将其添加到总体结果中...
$results = [];
foreach ( $xml->Week as $week ) {
$weekData = [];
foreach ( $week->Class as $class ) {
$weekData[]['DateTime'] = (string)$class['DateTime'];
}
$results[] = $weekData;
}
要加载所有属性...
$results = [];
foreach ( $xml->Week as $week ) {
$weekData = [];
foreach ( $week->Class as $class ) {
$classData = [];
foreach ( $class->attributes() as $name => $value ) {
$classData[$name] = (string)$value;
}
$weekData[] = $classData;
}
$results[] = $weekData;
}