【发布时间】:2016-12-08 09:20:10
【问题描述】:
我知道如何使用SimpleXML将XML转换为JSON,但是当同一个节点有多种子节点时,如何保存订单信息?
$xml = simplexml_load_string('
<root>
<a id="0"></a>
<b id="0"></b>
<b id="1"></b>
<a id="1"></a>
<a id="2"></a>
</root>
');
echo json_encode($xml->children());
代码打印如下:
{
"a": [
{
"@attributes": {
"id": "0"
}
},
{
"@attributes": {
"id": "1"
}
},
{
"@attributes": {
"id": "2"
}
}
],
"b": [
{
"@attributes": {
"id": "0"
}
},
{
"@attributes": {
"id": "1"
}
}
]
}
因此我不知道元素最初来自哪里,无论是按a, b, b, a, a 还是a, a, b, b, a 的顺序
所以我想知道是否有办法将该 XML 转换为 JSON 来保留这些信息?可能结果是这样的:
[
{
"tag": "a",
"@attributes": {
"id": "0"
}
},
{
"tag": "b",
"@attributes": {
"id": "0"
}
},
{
"tag": "b",
"@attributes": {
"id": "1"
}
},
{
"tag": "a",
"@attributes": {
"id": "1"
}
},
{
"tag": "a",
"@attributes": {
"id": "2"
}
}
]
【问题讨论】: