Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Вывод древа категорий в XML
Форумы портала PHP.SU » » XML и его обработка » Вывод древа категорий в XML

Страниц (1): [1]
 

1. Detryer - 21 Сентября, 2015 - 02:16:05 - перейти к сообщению
Здравствуйте! Вопрос следующий:

Имеется массив, взятый из SQL, его примерный вид:

Array ( [id] => 25 [parent] => 27 [name] => Components )
Array ( [id] => 27 [parent] => 20 [name] => Mac )
Array ( [id] => 20 [parent] => 0 [name] => Desktops )


Нужно вывести все это дело в XML файл с помощью библиотеки DOM, чтобы в файле данные были вида:

<categories>
<category id="20">Desktops</category>
<category id="27" parentId="20">Mac</category>
<category id="25" parentId="27">Components</category>
</categories>


Часть кода:

PHP:
скопировать код в буфер обмена
  1. $categories = $shop->appendChild($dom->createElement('catagories'));
  2.     while ($result = $oc_category->fetch_assoc()) {
  3.         $result['name'] = htmlspecialchars($result['name']);
  4.        if ($result['parent'] == 0) {
  5.             $parent_category = $categories->appendChild($dom->createElement('category', $result['name']));
  6.             $parent_category->setAttribute('id', $result['id']);
  7.        } else {
  8.             $child_category = $categories->appendChild($dom->createElement('category', $result['name']));
  9.             $child_category->setAttribute('id', $result['id']);
  10.             $child_category->setAttribute('parentId', $result['parent']);
  11.     }
  12. }


Сложности вызывает то, что все выводится неупорядоченным списком.
2. DlTA - 21 Сентября, 2015 - 08:04:18 - перейти к сообщению
а нафига вам библиотека DOM для формирования xml ?
3. Detryer - 21 Сентября, 2015 - 13:31:24 - перейти к сообщению
DlTA пишет:
а нафига вам библиотека DOM для формирования xml ?


А чем тогда лучше формировать? Просто по мне так с DOM довольно универсальный XML генератор получается
4. DlTA - 21 Сентября, 2015 - 14:28:03 - перейти к сообщению
Detryer пишет:
А чем тогда лучше формировать? Просто по мне так с DOM довольно универсальный XML генератор получается

тогда дерзайте, формируйте исходные данные в нужной последовательности и т.д.
5. Detryer - 21 Сентября, 2015 - 19:18:11 - перейти к сообщению
DlTA пишет:
тогда дерзайте, формируйте исходные данные в нужной последовательности и т.д.

Если нечего посоветовать - не пишите, зачем разводить срач? Я спросил, как сделать именно с помощью DOM, а вы начинаете разводить срач. Сказали, что DOM - не лучшее решение, так посоветуйте тогда, чем формировать лучше, никто не любит необоснованную критику. Весь файл уже создается правильно за исключением лишь порядка категорий, переписывать смысла не вижу.
6. andrewkard - 21 Сентября, 2015 - 20:40:55 - перейти к сообщению
Detryer
Попробуйте применить сортировку при выборке из БД
ORDER BY id ASC;
7. Detryer - 22 Сентября, 2015 - 00:18:58 - перейти к сообщению
andrewkard пишет:
Detryer
Попробуйте применить сортировку при выборке из БД
ORDER BY id ASC;


К сожалению, не получится, т.к. id у меня идут в неправильном порядке

 

Powered by ExBB FM 1.0 RC1