在php中将关联数组转换为XML

问题描述:

如何将关联数组转换为XML字符串?我found this但得到的错误“调用一个成员函数的addChild()一个非对象”运行线在php中将关联数组转换为XML

$node = $xml->addChild($key); 
+0

你能提供包含你提供的'ArrayToXML :: toXML()'调用的代码吗? – 2009-10-06 15:13:26

使用PHP Document Object Model

$xml = new DOMDocument('1.0', 'utf-8'); 
$root = $xml->createElement('top'); 
$xml->appendChild($root); 
foreach ($arr as $k => $v) { 
    $node = $xml->createelement($k); 
    $text = $xml->createTextNode($v); 
    $node->appendChild($text); 
    $root->appendChild($node); 
} 
echo $xml->saveXml(); 

你初始化$ XML对象时?这可能是你的问题。

+0

如何?当我看到= null时,我认为它不是必需的 – 2009-10-06 15:25:59

+0

它表示您正在对非对象进行调用。这意味着该对象不存在。如果它是空的,它怎么能有一个方法? – GSto 2009-10-06 18:00:24

它非常相似,你会怎么做这样的事情:

while($row = mysql_fetch_assoc($result)) 

不能使用$结果作为一个数组,但你可以的foreach或者通过不同的条目。

如果你想要一个简单的解决方案,PEAR的XML_Serialize是相当不错的。手动做DOM可以说是更快。