Как преобразовать ассоциированный массив в строку XML? Я нашел это, но получаю сообщение об ошибке «Вызов функции-члена addChild () для не-объекта» при запуске строки
$node = $xml->addChild($key);
Используйте объектную модель документа PHP:
$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? Вероятно, это ваша проблема.
Его довольно похоже на то, как вы будете делать что-то вроде этого:
while($row = mysql_fetch_assoc($result))
Вы не можете использовать $ result в качестве массива, но вы можете использовать foreach или while через разные записи.
PEAR XML_Serialize довольно хорош, если вы хотите простое решение. Выполнение DOM вручную возможно быстрее.