Intereting Posts
Loop mysql_fetch_assoc с использованием foreach вместо цикла while div внутри php echo PHP: неделя начинается в понедельник, но «понедельник на этой неделе» в воскресенье будет понедельник на следующей неделе могут ли статические члены использовать нестатические члены и наоборот? Некоторые символы в CSV-файле не читаются во время PHP fgetcsv () Как бороться с относительными путями в Symfony 2? Codeigniter AutoLoad DB, но есть возможность проверить, существует ли соединение Получение данных для нескольких одиночных или справочных без использования оператора Как получить IP-адрес пользователя в PHP? Как читать мыльный ответ xml в php xPath не извлекает HTML как часть содержимого Возвращать последние значения из определенной позиции в массиве PHP Расширение класса заставляет детей наследовать одно и то же статическое свойство htaccess блокирует доступ к каталогу, но разрешает доступ к файлам Вложенный массив. Третий уровень исчезает

Назначение xml, сгенерированного циклом while переменной

Я создаю XML, используя цикл while, но теперь мне нужно добавить и добавить сгенерированный XML с информацией заголовка XML и тегом обертки, но я изо всех сил пытаюсь заставить его работать, вот мой код,

$result = mysql_query("SELECT * FROM users") or die(mysql_error()); $row = mysql_fetch_array($result); while ($row = mysql_fetch_array($result)) { $pumaXML = "<userDetails>"; $pumaXML .= "<userID>".$row['uid']."</userID>"; $pumaXML .= "<userName>".$row['userName']."</userName>"; $pumaXML .= "<points>".$row['points']."</points>"; $pumaXML .= "<imageURL>".$row['imageURL']."</imageURL>"; $pumaXML .= "<thumbURL>".$row['thumbURL']."</thumbURL>"; $pumaXML .= "</userDetails>"; }; 

Я не могу найти способ сделать это, я также попытался сделать функцию, но это не так хорошо, вот этот код,

 function createXML($result) { while ($row = mysql_fetch_array($result)) { $pumaXML = "<userDetails>"; $pumaXML .= "<userID>".$row['uid']."</userID>"; $pumaXML .= "<userName>".$row['userName']."</userName>"; $pumaXML .= "<points>".$row['points']."</points>"; $pumaXML .= "<imageURL>".$row['imageURL']."</imageURL>"; $pumaXML .= "<thumbURL>".$row['thumbURL']."</thumbURL>"; $pumaXML .= "</userDetails>"; }; return $pumaXML; }; 

Thanx заранее!

Вот как это сделать с DOM :

 function createUserDetailsXml(array $result) { $dom = new DOMDocument; $dom->formatOutput = TRUE; // enable automatic indenting $dom->loadXML('<users/>'); // set root node foreach($result as $row) { // create user-details node $user = $dom->createElement('user-details'); // create and append details to user-details node $user->appendChild( $dom->createElement('user-id', $row['uid'])); $user->appendChild( $dom->createElement('user-name', $row['userName'])); $user->appendChild( $dom->createElement('user-points', $row['points'])); $user->appendChild( $dom->createElement('image-url', $row['imageURL'])); $user->appendChild( $dom->createElement('thumb-url', $row['thumbURL'])); // add user-details node to XML document, eg users node $dom->documentElement->appendChild($user); }; return $dom->saveXML(); // returns the formatted XML }; 

Обратите внимание, что функция ожидает, что вы перейдете в полный массив результатов, чтобы я мог протестировать его с помощью:

 $result = array( array( 'uid' => 1, 'userName' => 'Gordon', 'points' => PHP_INT_MAX, 'imageURL' => 'http://example.com/gordon.jpg', 'thumbURL' => 'http://example.com/t_gordon.jpg' ), array( 'uid' => 2, 'userName' => 'John <blink>"Frigging"</blink> Doe', 'points' => 0, 'imageURL' => 'http://example.com/johndoe.jpg', 'thumbURL' => 'http://example.com/t_johndoe.jpg' ) ); echo createUserDetailsXml($result); 

Затем функция вернется

 <?xml version="1.0"?> <users> <user-details> <user-id>1</user-id> <user-name>Gordon</user-name> <user-points>2147483647</user-points> <image-url>http://example.com/gordon.jpg</image-url> <thumb-url>http://example.com/t_gordon.jpg</thumb-url> </user-details> <user-details> <user-id>2</user-id> <user-name>John &lt;blink&gt;"Frigging"&lt;/blink&gt; Doe</user-name> <user-points>0</user-points> <image-url>http://example.com/johndoe.jpg</image-url> <thumb-url>http://example.com/t_johndoe.jpg</thumb-url> </user-details> </users> 

Обратите внимание, что DOM автоматически удалил специальные символы в имени Джона Доу. DOM также удостоверится, что имена элементов XML (или атрибуты, если вы их используете) являются синтаксически действительными. Он также добавил XML-пролог.