Просмотр полной версии : грамотная организация XML-файла
Флешка должна по ХМЛ файлу строить квадратики и стрелочки, соединяющие эти квадратики. Я решил попробовать следующую структуру ХМЛ-файла:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<item id='1' name = 'item1' xx = '5' yy = '5'>
<rel> item2 </rel>
</item>
<item id='2' name = 'item2' xx = '50' yy = '50'>
</item>
<item id='3' name = 'item3' xx = '5' yy = '5'>
<rel> item2 </rel>
</item>
</root>
Но взглянув на сие написанное, никак не могу понять, а как реализовать все остальное? (функции построения квадратиков и стрелочек "drawSqr" и "drawLine" есть)...
Или, возможно, есть более изящный и аккуратный вид ХМЛ для этой задач? Подскажите пожалуйста... :rolleyes:
что-то более изящное у вас вряли получится, т.к. вы с помощью xml-дерева описываете граф, с которым удобнее работать как с матрицей. Если вам после построения графа нужна информация о его вершинах и связях, то рекомендую построить матрицу, если же нет, то можно обойтись и двумя циклами обхода дерева, 1-й с целью получения и постоения всех вершин, 2-й для постоения связей.
Эх, блин... Надо открывать вновь учебник по дискретке... :):):)
Но спасибо за совет!
crazyone
10.04.2008, 16:56
Вполне нормальный хмл-файл.
Сначала обходите все "item", строите квадратики, пихаете их в асоциативный массив под своими именами. Потом еще раз обходите дерево, строите стрелочки между нужными квадратиками.
Вполне нормальный хмл-файл.Не нормальный. amesqit предложил верный вариант.
crazyone
10.04.2008, 17:14
Не нормальный. amesqit предложил верный вариант.
Верный вариант - отказаться от хмл-файла в пользу матриц, когда в требованиях - строить по хмл-файлу?
Верный вариант - отказаться от хмл-файла в пользу матриц, когда в требованиях - строить по хмл-файлу?xml лишь носитель информации.
crazyone
10.04.2008, 17:51
xml лишь носитель информации.
Я ж и не спорю. И что бы ты в нем поменял, что в нем не нормального?
ЗЫ И я не против того, что amesqit прав, он даже говорит - если нужно только построить - два цикла, если потом с ним работать - строить матрицу.
Но сам файл менять - врятли имеет смысл, он нормальный.
Хе. Я его вчера читал и уже малость подзабыл, что он писал. Так что, я ошибся сославшись на него. В xml должно быть две раздельные ветки, в одной описываются объекты, в другой связи.
crazyone
10.04.2008, 18:28
ИМХО - как вариант. Только как вариант. В зависимости от конкретной задачи - может быть лучше вариант с одной двухуровневой веткой, или с двумя одноуровневыми.
данынй вариант xml файла я бы изменил следующим образом, исходя из того, что написал Kinley, граф является направленным (если мне не изменяет памят это так называется), так вот, для описаний связей я бы не сатал использовать теги <rel></rel>, а просто перечислил бы их через какой-то разделитель, запятую или пробел, при том для иденификации использовал бы атрибут id, а не name, таким образом можно было бы несколько уменьшить размер файла, при большом количестве узлов. Если выносить связи в еще один узел, то выигрыша мы не получим никакого, по крайней мере я его абсолютно не вижу, т.к. нам придется придется описывать связи оного узла примерно так:
...
<item a='1' b='2'/>
<item a='1' b='3'/>
<item a='3' b='2'/>
...
а если это полносвязный граф с большим количеством узлов, то получится что мы необосновано раздуем файл до неоправданно больших размеров.
В общем как я и говорил, я бы предложил такую структуру xml:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<item id='1' name = 'item1' xx = '5' yy = '5'>
2,3
</item>
<item id='2' name = 'item2' xx = '50' yy = '50'>
</item>
<item id='3' name = 'item3' xx = '5' yy = '5'>
2
</item>
</root>
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.