所以我正在尝试将数组转换为XML文档(只是将其作为字符串输出)。我知道php内置json_encode
并且它工作正常,但我似乎找不到任何好的XML等价物。
基本上,数组是PDOStatement->fetchAll();
我希望输出看起来像这样:
<arrayitem>
<iteminfo1>text</iteminfo1>
<iteminfo2>text</iteminfo2>
<iteminfo3>text</iteminfo3>
<iteminfo4>text</iteminfo4>
<iteminfo5>text</iteminfo5>
</arrayitem>
答案 0 :(得分:1)
function array2XML($arr,$root) {
$xml = new SimpleXMLElement("<?xml version=\"1.0\" encoding=\"utf-8\" ?><{$root}></{$root}>");
$f = create_function('$f,$c,$a','
foreach($a as $v) {
if(isset($v["@text"])) {
$ch = $c->addChild($v["@tag"],$v["@text"]);
} else {
$ch = $c->addChild($v["@tag"]);
if(isset($v["@items"])) {
$f($f,$ch,$v["@items"]);
}
}
if(isset($v["@attr"])) {
foreach($v["@attr"] as $attr => $val) {
$ch->addAttribute($attr,$val);
}
}
}');
$f($f,$xml,$arr);
return $xml->asXML();
}
答案 1 :(得分:0)
没有内置工具可以做到这一点,但它很容易实现。
答案 2 :(得分:0)
有一个内置的库可以帮助你做到这一点,但不像json_encode那么简单。