2009-10-06 93 views
1

如何將關聯數組轉換爲XML字符串?我found this但得到的錯誤「調用一個成員函數的addChild()一個非對象」運行線在php中將關聯數組轉換爲XML

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

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

回答

1

使用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(); 
0

你初始化$ XML對象時?這可能是你的問題。

+0

如何?當我看到= null時,我認爲它不是必需的 – 2009-10-06 15:25:59

+0

它表示您正在對非對象進行調用。這意味着該對象不存在。如果它是空的,它怎麼能有一個方法? – GSto 2009-10-06 18:00:24

0

它非常相似,你會怎麼做這樣的事情:

while($row = mysql_fetch_assoc($result)) 

不能使用$結果作爲一個數組,但你可以的foreach或者通過不同的條目。

0

如果你想要一個簡單的解決方案,PEAR的XML_Serialize是相當不錯的。手動做DOM可以說是更快。