📅  最后修改于: 2023-12-03 15:24:33.501000             🧑  作者: Mango
如果你需要将一个PHP中的数组转换为 SimpleXML,你可以使用SimpleXMLElement
类的构造函数。SimpleXMLElement
可以将一个XML字符串作为参数进行解析转换,所以我们需要将数组转换为XML字符串,然后再进行解析。
以下是将数组转换为XML字符串的示例:
function arrayToXml($array, $rootElement = null, $xml = null) {
$_xml = $xml;
if ($_xml === null) {
$_xml = new SimpleXMLElement($rootElement !== null ? '<' . $rootElement . '/>' : '<root/>');
}
foreach ($array as $key => $value) {
if (is_array($value)) {
arrayToXml($value, $key, $_xml->addChild($key));
} else {
$_xml->addChild($key, $value);
}
}
return $_xml->asXML();
}
这个函数将会返回一个XML字符串,其中包含了数组中的所有元素:
$array = array(
'fruits' => array(
'apple' => 'red',
'banana' => 'yellow',
'orange' => 'orange'
)
);
$xml = arrayToXml($array);
echo $xml;
将输出:
<root>
<fruits>
<apple>red</apple>
<banana>yellow</banana>
<orange>orange</orange>
</fruits>
</root>
现在,我们已经将数组成功转换为了一个XML字符串,接下来,我们可以使用SimpleXMLElement
类的构造函数来解析转换后的XML字符串,将其转换为一个 SimpleXML 对象:
$xmlObject = new SimpleXMLElement($xml);
print_r($xmlObject);
输出:
SimpleXMLElement Object
(
[fruits] => SimpleXMLElement Object
(
[apple] => red
[banana] => yellow
[orange] => orange
)
)
现在我们已经成功将数组转换为 SimpleXML 对象了。