PHP JSON 或数组到 XML

作者:编程家 分类: xml 时间:2025-08-16

将 PHP 中的 JSON 或数组转换为 XML 是一个常见的需求。在处理数据的过程中,有时候我们需要将数据以 XML 的形式进行存储或传输。PHP 提供了一些内置的函数和类来实现这个转换过程,让我们能够轻松地将 JSON 或数组转换为 XML 格式。

首先,让我们来看一下如何将一个 JSON 字符串转换为 XML。我们可以使用 PHP 的 `json_decode()` 函数将 JSON 字符串解码为 PHP 数组,然后使用循环和字符串拼接的方式将数组转换为 XML。

下面是一个示例代码:

php

$jsonString = '{"name": "John", "age": 30, "city": "New York"}';

$data = json_decode($jsonString, true);

$xmlString = '';

$xml = new SimpleXMLElement($xmlString);

arrayToXml($data, $xml);

function arrayToXml($data, &$xml) {

foreach($data as $key => $value) {

if(is_array($value)) {

$subnode = $xml->addChild($key);

arrayToXml($value, $subnode);

} else {

$xml->addChild("$key", htmlspecialchars("$value"));

}

}

}

echo $xml->asXML();

?>

在上面的代码中,我们首先使用 `json_decode()` 函数将 JSON 字符串解码为 PHP 数组。然后,我们创建了一个空的 XML 字符串,并使用 `SimpleXMLElement` 类将其实例化为一个 XML 对象。

接下来,我们定义了一个名为 `arrayToXml()` 的递归函数,用于将数组转换为 XML。在这个函数中,我们使用了 `addChild()` 方法来添加 XML 元素,并根据数组的键和值进行递归处理。

最后,我们使用 `$xml->asXML()` 方法将 XML 对象转换为字符串,并通过 `echo` 输出。

下面是一个转换结果的示例:

xml

John

30

New York

通过上面的代码和示例结果,我们可以看到如何将一个 JSON 字符串转换为 XML 格式。

接下来,让我们看一下如何将一个 PHP 数组转换为 XML。实际上,这个过程与将 JSON 转换为 XML 的过程非常相似,我们只需要将 `json_decode()` 函数改为直接使用数组即可。

下面是一个示例代码:

php

$data = array(

"name" => "John",

"age" => 30,

"city" => "New York"

);

$xmlString = '';

$xml = new SimpleXMLElement($xmlString);

arrayToXml($data, $xml);

function arrayToXml($data, &$xml) {

foreach($data as $key => $value) {

if(is_array($value)) {

$subnode = $xml->addChild($key);

arrayToXml($value, $subnode);

} else {

$xml->addChild("$key", htmlspecialchars("$value"));

}

}

}

echo $xml->asXML();

?>

在上面的代码中,我们将 JSON 字符串改为了一个 PHP 数组,并按照相同的方式进行了转换。最终的结果也是一个与之前相同的 XML 字符串。

通过 PHP 的内置函数和类,我们可以很方便地将 JSON 或数组转换为 XML 格式。这在处理数据时非常有用,特别是在与其他系统进行数据交换或存储时。

示例代码:

php

$jsonString = '{"name": "John", "age": 30, "city": "New York"}';

$data = json_decode($jsonString, true);

$xmlString = '';

$xml = new SimpleXMLElement($xmlString);

arrayToXml($data, $xml);

function arrayToXml($data, &$xml) {

foreach($data as $key => $value) {

if(is_array($value)) {

$subnode = $xml->addChild($key);

arrayToXml($value, $subnode);

} else {

$xml->addChild("$key", htmlspecialchars("$value"));

}

}

}

echo $xml->asXML();

?>

通过上述代码,我们可以很容易地将一个 JSON 字符串转换为 XML 格式。同样地,我们也可以将一个 PHP 数组转换为 XML,只需稍微修改一下代码即可。

示例结果:

xml

John

30

New York

通过上面的示例结果,我们可以清楚地看到 JSON 或数组转换为 XML 的结果。这个过程非常简单,只需要几行代码就能完成。

在本文中,我们介绍了如何使用 PHP 将 JSON 或数组转换为 XML。我们通过使用 `json_decode()` 函数将 JSON 字符串解码为 PHP 数组,然后使用 `SimpleXMLElement` 类创建一个空的 XML 对象。接着,我们定义了一个递归函数来处理数组,并使用 `addChild()` 方法将数组的键和值转换为 XML 元素。最后,我们将 XML 对象转换为字符串并输出。

这个转换过程非常有用,特别是在处理数据时需要与其他系统进行交互或存储时。通过将数据转换为 XML 格式,我们可以更方便地进行数据传输和存储。

参考代码:

php

$jsonString = '{"name": "John", "age": 30, "city": "New York"}';

$data = json_decode($jsonString, true);

$xmlString = '';

$xml = new SimpleXMLElement($xmlString);

arrayToXml($data, $xml);

function arrayToXml($data, &$xml) {

foreach($data as $key => $value) {

if(is_array($value)) {

$subnode = $xml->addChild($key);

arrayToXml($value, $subnode);

} else {

$xml->addChild("$key", htmlspecialchars("$value"));

}

}

}

echo $xml->asXML();

?>

通过上述代码,我们可以很容易地将一个 JSON 字符串转换为 XML 格式。同样地,我们也可以将一个 PHP 数组转换为 XML,只需稍微修改一下代码即可。

示例结果:

xml

John

30

New York

通过上面的示例结果,我们可以清楚地看到 JSON 或数组转换为 XML 的结果。这个过程非常简单,只需要几行代码就能完成。无论是在什么场景下,将数据转换为 XML 格式都可以帮助我们更好地处理和管理数据。