Php записывает XML-файл без значений

#php #dom

#php #dom

Вопрос:

У меня есть скрипт, который считывает значения из базы данных mysql. С полученными значениями я хочу создать XML-файл.

Файл записан, но без значений. Я не могу понять это. Вот полный исходный код:http://www.segasiauto.ro/tmp/writexml.txt

Кто-нибудь может помочь?

Спасибо, Себастьян

Редактировать

Решено. Возникла проблема с массивом. Я добавил данные непосредственно в createNodeText

Комментарии:

1. Как выглядят данные из базы данных? Вы проверили, были ли вообще извлечены какие-либо данные?

2. Пожалуйста, (а) сузьте свой код до самого маленького примера, который все еще показывает проблему, (б) опубликуйте его здесь, где, как мы знаем, он не исчезнет, чтобы этот вопрос оставался полезным в будущем, и (в) опубликуйте результирующий файл, который вы получаете, чтобы мы знали, что вы подразумеваете под «без значений». Спасибо!

3. @Ancide данные в порядке. проверил результаты.

Ответ №1:

Посмотрите внимательно, что вы делаете:

   $product[] = array(
  'id' => $id,
  'name' => $tip,
  'category' => $tip_produs,
  'model' => $tip_imp,
  'keywords' => $keywords,
  'price' => $pret,
  'available' => "1",
  'canBeOrderedOnline' => "0",
  'details' => $details,
  'pictures' => "picture",
  'currency' => $valuta,
  );    
  

и затем

 $doc->createTextNode( $product['id'] ));
  

никогда не получит то, что вы хотите.
Конечно, он пуст. Там ничего нет.

Комментарии:

1. Черт возьми. Я не заметил, что это уже было решено. Вы должны были принять свой собственный ответ.

Ответ №2:

Проблема в конце вашего файла. Вы используете:

 $doc->saveXML('document.xml');
  

Это ничего не выводит, функция возвращает XML-строку. Чтобы отправить XML-строку в ваш браузер, вы должны повторить ее:

 echo $doc->saveXML('document.xml');
  

Смотрите также DOMDocument::saveXML()

Комментарии:

1. Или используйте $doc->save('document.xml'); для сохранения в файл. (См. php.net/manual/en/domdocument.save.php )

2. я пробовал оба. если я использую echo $doc->saveXML(); , ничего не распечатывается. если я использую $doc=>save('document.xml') , файл записывается, но только с тегами без значений.