Порядок следования элементов в XML (YML)

antd2000

Новичок
Порядок следования элементов в XML (YML)

Пишу скрипт с применением XMLParser для конвертирования ОЗОНовского xml в MySQL.
(нужно выбрать только один раздел с его подразделами)
DTD XMLя такой http://www.ozon.ru/multimedia/yml/partner/shops.dtd

Мне интересен вопрос - может ли встретится этом xml сначала категория с ссылкой на родительскую, а уже потом описание этой родительской категории?

То есть может ли быть вот так?:
(то есть как в БД - порядок следования записей не определен)
...
<categiory id="3" parentId="2">
...
<categiory id="2" parentId="10">


Или же гарантированно может быть только так?:
(сначала описание родительской категории и только потом - дочерней)
...
<categiory id="2" parentId="10">
...
<categiory id="3" parentId="2">



p.s.
Почему спрашиваю. Дело в том что мне нужно выбрать только один раздел с его подразделами.
А если порядок может быть как 1-м варианте, то вообще непонятно как работать с этим документом методом
последовательного доступа (SAX или XMLParser).
То есть будет непонятно как определить - подходит рубрика к нужному мне разделу или нет.
Останется вариант только весь каталог загнать в БД, а уж потом убирать ненужные ветки.
 

Wicked

Новичок
сохраняй все в виде временного дерева и потом уже выбирай то, что нужно.
 

slach

Новичок
;) ну вообще если изначально у них все хранится в реляциях

то скорее всего даже если они дерево выбирают не рекурсией и не nested sets
то id категорий потомков будет больше чем parentId ;)

можешь сохранять не в дерево.. .а можешь сохранять во временную таблицу MySQL сразу.. .а потом уже проверять по ней целостность рекурсией...
и выгребать только тот раздел который нужен
 

antd2000

Новичок
Автор оригинала: Wicked
сохраняй все в виде временного дерева и потом уже выбирай то, что нужно.
Не очень понятно так как:

1. Хватит ли памяти для этого дерева? (т.к. для работы с xml по методу DOM не хватает).
Не уж то дерево меньше потребляет памяти чем xml DOM?

2. Допустим я буду работать с временным деревом. Опять же встречаю я в XML такой элемент:
<category id="3" parentid="2">
А парент егойный допустим описан далеко внизу. И что - опять не понятно к какой ветке его подцеплять!

-~{}~ 30.09.09 15:32:

Автор оригинала: slach
;) ну вообще если изначально у них все хранится в реляциях

то скорее всего даже если они дерево выбирают не рекурсией и не nested sets
то id категорий потомков будет больше чем parentId ;)
Да нет, вопрос не в том больше id по значению или нет.
Вопрос о порядке следования записей в файле.
А id потомка по идее может быть больше id родителя. Если например ветку перенесли из другого (ранее созданного раздела).

Автор оригинала: slach
можешь сохранять не в дерево.. .а можешь сохранять во временную таблицу MySQL сразу.. .а потом уже проверять по ней целостность рекурсией...
и выгребать только тот раздел который нужен
Да, спасибо. Я вроде об этом говорил.
Останется вариант только весь каталог загнать в БД, а уж потом убирать ненужные ветки.
Да, но хотелось бы поэлегантнее, поэтому и задал этот вопрос.
 

slach

Новичок
ну на момент парсинга конкретной ноды через XMLReader или XMLParser ты не знаешь правильное ли у тебя дерево или нет

просто в данном случае проблема в том, что РЕЛЯЦИОННУЮ модель запихнули в XML теги

если бы делали правильно то они бы сделали через вложенные теги


<category id="">
<category id="" parentid="">
</category>
</category>
 
Сверху