有时候我们需要将数据以xml格式存储到数据库或文件中,方便以后使用。对于这个需求,我们必须将数据转换为xml格式,为了满足这一需求,我们需要将数据转换成XML并保存XML文件。在本教程中,我们将讨论如何从PHP数组创建XML。我们已经创建了转换PHP数组到XML一个简单的脚本。您可以轻松地生成PHP数组的XML文件,并保存XML文件。
PHP数组:
首先,我们将用户数据存储在PHP的数组中:
$users_array = array(
"total_users" => 3,
"users" => array(
array(
"id" => 1,
"name" => "Nitya",
"address" => array(
"country" => "India",
"city" => "Kolkata",
"zip" => 700102,
)
),
array(
"id" => 2,
"name" => "John",
"address" => array(
"country" => "USA",
"city" => "Newyork",
"zip" => "NY1234",
)
),
array(
"id" => 3,
"name" => "Viktor",
"address" => array(
"country" => "Australia",
"city" => "Sydney",
"zip" => 123456,
)
),
)
);
数组转换为XML:
现在,我们使用php的SimpleXML将用户数组转换使用。
//function defination to convert array to xml
function array_to_xml($array, &$xml_user_info) {
foreach($array as $key => $value) {
if(is_array($value)) {
if(!is_numeric($key)){
$subnode = $xml_user_info->addChild("$key");
array_to_xml($value, $subnode);
}else{
$subnode = $xml_user_info->addChild("item$key");
array_to_xml($value, $subnode);
}
}else {
$xml_user_info->addChild("$key",htmlspecialchars("$value"));
}
}
}
//creating object of SimpleXMLElement
$xml_user_info = new SimpleXMLElement("<?xml version=\"1.0\"?>");
//function call to convert array to xml
array_to_xml($users_array,$xml_user_info);
//saving generated xml file
$xml_file = $xml_user_info->asXML('users.xml');
//success and error message based on xml creation
if($xml_file){
echo 'XML file have been generated successfully.';
}else{
echo 'XML file generation error.';
}
运行该脚本,输出一下xml内容:
3
1
Nitya
India
Kolkata
700102
2
John
USA
Newyork
NY1234
3
Viktor
Australia
Sydney
123456