Показать сообщение отдельно
  #1 (permalink)  
Старый 25.09.2010, 03:12
Интересующийся
Отправить личное сообщение для pashak Посмотреть профиль Найти все сообщения от pashak
 
Регистрация: 08.04.2010
Сообщений: 16

XMLtoJSON: как удобнее?
Есть XML данные (неважно, получены ли через XMLHttpRequest, либо отпарсены со строки), в которых содержатся данные, которые необходимо отправить каждые в свою функцию. Для ускорения работы я преобразовываю XML в JSON.
Например (от балды, названия тегов, атрибуты и значения не играют роли):
<xml>
    <obj attr='v1'><d/></obj>
    <q att='3'><z/><z/></q>
    <q att='1'></q>
    <ggg>345</ggg>
</xml>

в такой вид:
{
    "obj":[{
              "attr":"v1",
              "d":[{}]
           }],
    "q":[
             {"att":"3","z":[{},{}]},
             {"att":"1"}
         ],
    "ggg":[{"$value":"345"}]
}

Т.е. аттрибуты были строковыми свойствами, текстовые значения - как свойства $value (хотя это было плохо, например, в ситуациях, когда помимо текста есть и вложенные теги), а вложенные дочерние теги организовывались как свойства-массивы.
Такая ситуация спасала до тех пор, пока не возникла необходимость:
1) во-первых, отслеживать точный порядок тегов;
2) во-вторых, помимо текста иметь внутри и другие теги.
В общем, задача звучит как "Преобразование в JSON с сохранением порядка XML".
Как вариант вводить дополнительные свойства, например, $all как массив с дочерними объектами (в этом случае сохранится порядок), но я пока сомневаюсь.
Кстати, объект инициируется не обязательно форматом JSON. Важно, чтобы в конце всех преобразований это был объект с вышеуказанными свойствами.
Вся эта лабуда напоминает SimpleXML из PHP.
Что можете посоветовать? Если есть радикально другие варианты удобного преобразования - тоже неплохо
Ответить с цитированием