将数组转换为xml字符串的最简单方法?

时间:2011-07-07 00:29:56

标签: php

所以我正在尝试将数组转换为XML文档(只是将其作为字符串输出)。我知道php内置json_encode并且它工作正常,但我似乎找不到任何好的XML等价物。

基本上,数组是PDOStatement->fetchAll();

的结果

我希望输出看起来像这样:

<arrayitem>
   <iteminfo1>text</iteminfo1>
   <iteminfo2>text</iteminfo2>
   <iteminfo3>text</iteminfo3>
   <iteminfo4>text</iteminfo4>
   <iteminfo5>text</iteminfo5>
</arrayitem>

3 个答案:

答案 0 :(得分:1)

直接摘自PHP: SimpleXML - Manual

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那么简单。

http://php.net/manual/en/book.simplexml.php