📅  最后修改于: 2023-12-03 15:24:00.050000             🧑  作者: Mango
在PHP中,可以使用标准库中的SimpleXMLElement
类来解析XML数据,并使用json_encode
函数将其转换为JSON数据。下面我们来看一个简单的示例。
我们有如下的XML数据:
<?xml version="1.0" encoding="UTF-8"?>
<people>
<person>
<name>John</name>
<age>30</age>
</person>
<person>
<name>Jane</name>
<age>25</age>
</person>
</people>
我们想把它转换为JSON格式,如下所示:
{
"people": {
"person": [
{
"name": "John",
"age": "30"
},
{
"name": "Jane",
"age": "25"
}
]
}
}
我们可以使用如下代码将其实现:
<?php
$xml = <<<XML
<?xml version="1.0" encoding="UTF-8"?>
<people>
<person>
<name>John</name>
<age>30</age>
</person>
<person>
<name>Jane</name>
<age>25</age>
</person>
</people>
XML;
$xmlObj = new SimpleXMLElement($xml);
$json = json_encode($xmlObj);
echo $json;
?>
输出结果为:
{"person":[{"name":"John","age":"30"},{"name":"Jane","age":"25"}]}
需要注意的是,上述代码只输出了person
节点下的数据,因为我们在创建SimpleXMLElement
对象时只传入了<person>
标签内的XML数据。如果我们想输出整个XML文件的数据,可以像下面这样修改代码:
<?php
$xml = <<<XML
<?xml version="1.0" encoding="UTF-8"?>
<people>
<person>
<name>John</name>
<age>30</age>
</person>
<person>
<name>Jane</name>
<age>25</age>
</person>
</people>
XML;
$xmlObj = new SimpleXMLElement($xml);
$json = json_encode($xmlObj, JSON_PRETTY_PRINT); // 使用JSON_PRETTY_PRINT参数使输出的JSON数据更易读
echo $json;
?>
输出结果为:
{
"person": [
{
"name": "John",
"age": "30"
},
{
"name": "Jane",
"age": "25"
}
]
}
用PHP将XML数据转换为JSON格式,主要是通过SimpleXMLElement
类解析XML数据,然后使用json_encode
函数将其转换为JSON数据。需要注意的是,json_encode
函数并不能输出格式化后的JSON数据,如果需要输出更易读的JSON,需要使用JSON_PRETTY_PRINT
参数。