在php中将关联数组转换为XML
问题描述:
如何将关联数组转换为XML字符串?我found this但得到的错误“调用一个成员函数的addChild()一个非对象”运行线在php中将关联数组转换为XML
$node = $xml->addChild($key);
答
使用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可以说是更快。
你能提供包含你提供的'ArrayToXML :: toXML()'调用的代码吗? – 2009-10-06 15:13:26