PHP JSON 或数组到 XML

xmlphpJS

1个回答

写回答

Ranran.

2025-12-10 21:13

+ 关注

php
php

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

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

下面是一个示例代码:

php

<?php</p>$JSonString = '{"name": "John", "age": 30, "city": "New York"}';

$data = JSon_decode($JSonString, true);

$XMLString = '<?XML version="1.0" encoding="UTF-8"?><data></data>';

$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

<?XML version="1.0" encoding="UTF-8"?>

<data>

<name>John</name>

<age>30</age>

<city>New York</city>

</data>

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

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

下面是一个示例代码:

php

<?php</p>$data = array(

"name" => "John",

"age" => 30,

"city" => "New York"

);

$XMLString = '<?XML version="1.0" encoding="UTF-8"?><data></data>';

$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

<?php</p>$JSonString = '{"name": "John", "age": 30, "city": "New York"}';

$data = JSon_decode($JSonString, true);

$XMLString = '<?XML version="1.0" encoding="UTF-8"?><data></data>';

$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

<?XML version="1.0" encoding="UTF-8"?>

<data>

<name>John</name>

<age>30</age>

<city>New York</city>

</data>

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

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

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

参考代码:

php

<?php</p>$JSonString = '{"name": "John", "age": 30, "city": "New York"}';

$data = JSon_decode($JSonString, true);

$XMLString = '<?XML version="1.0" encoding="UTF-8"?><data></data>';

$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

<?XML version="1.0" encoding="UTF-8"?>

<data>

<name>John</name>

<age>30</age>

<city>New York</city>

</data>

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

举报有用(0分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号