[英]Convert php array to xml
请查看我的代码,我在各种线程上尝试了几种建议,我要么输出为空,要么为字符串。
我的密码
<?php
$input_array = array (
'name' => 'John Doe',
'course' => 'Computer Science',
'age' => 'twenty one'
);
$xml = new SimpleXMLElement('<root/>');
array_walk_recursive(array_flip($input_array), array ($xml, 'addChild'));
print $xml->asXML();
?>
输出 John Doe计算机科学二十一
网络浏览器正在解析标签,这就是它们似乎不存在的原因。
右键单击并查看源。 或用<pre>
标签包围输出。
print '<pre>';
print $xml->asXML();
print '</pre>';
这应该为您工作:
<?php
$input_array = array (
'name' => 'John Doe',
'course' => 'Computer Science',
'age' => 'twenty one'
);
$xml = new SimpleXMLElement('<root/>');
$arr = array_flip($input_array);
array_walk_recursive($arr, array( $xml, 'addChild'));
//^^^ Can't use array_filp directly otherwise: Strict Standards: Only variables should be passed by reference
print $xml->asXML();
?>
要获得良好的格式化输出,可以执行以下操作:
header('Content-type: text/xml');
输出:
<root>
<name>John Doe</name>
<course>Computer Science</course>
<age>twenty one</age>
</root>
一个简短的:
<?php
$test_array = array (
'bla' => 'blub',
'foo' => 'bar',
'another_array' => array (
'stack' => 'overflow',
),
);
$xml = new SimpleXMLElement('<root/>');
array_walk_recursive($test_array, array ($xml, 'addChild'));
print $xml->asXML();
结果是
<?xml version="1.0"?>
<root>
<blub>bla</blub>
<bar>foo</bar>
<overflow>stack</overflow>
</root>
要将php数组转换为xml,请在可用的非常好的解决方案中参考此文档
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.