![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| alir |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 383 Регистрация: 19.3.2005 Репутация: 2 Всего: 4 |
Задача такая: представить в XML'е граф, считать его и изобразить на форме. Как лучше представить вершины и связи в XML-файле - хранить названия вершин и информацию с какими еще вершинами связан? Просто насколько я знаю в XML в основном хранят информацию в древовидной структуре, а мне нужно чтобы любой узел мог быть связан с любым другим. Как лучше сделать?
|
|||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 110 Всего: 232 |
Связь можно сделать так: хранить путь XPath на связанный XML-узел. Тогда выбрать узел можно с пом. обычного XPathNavigator-а.
-------------------- ![]() |
|||
|
||||
| alir |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 383 Регистрация: 19.3.2005 Репутация: 2 Всего: 4 |
mr.DUDA
Простенький примерчик плз, а то в XML знаком только с основами. |
|||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 110 Всего: 232 |
alir, пожалуйста:
Любой узел <MyNode> может ссылаться на любое количество других узлов <MyNode>. Ссылка описывается тегом <ref>. Разумеется, имена тегов и атрибутов могут быть произвольными. -------------------- ![]() |
|||
|
||||
| alir |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 383 Регистрация: 19.3.2005 Репутация: 2 Всего: 4 |
mr.DUDA
Благодарю за пример. А зачем делать вложенные узлы MyNode? Как я понимаю, в моей задаче достаточно оперделения узла и ссылок с какими узлами связан, т.е. так:
Далее, что за теги <some />, <cool /> и <value>? Вроде ж без них можно. И еще: подскажи как скачать этот граф из xml-файла? Т.е. необходимо не просто считать в string-переменную, а использовать специализированные методы (соотвественно для этого примера). |
|||
|
||||
| mr.DUDA |
|
||||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 110 Всего: 232 |
Вложенные узлы можно убрать, тут у меня получилось скорее дерево+ссылки а не граф в чистом виде; хотя, поиск по вложенным узлам провести быстрее чем по ссылкам. А одинаковые имена - чтобы не запутаться. В принципе я же говорил, что имена тегов и атрибутов (id и так далее) чисто условные, можно юзать хоть 10 разных тегов и ссылок между ними, главное правильно указывать имя конкретного тега в xpath и в коде.
Ну куда же без <cool>, <value> и <some> ? Воткнул их для примеру, чтоб MyNode хоть что-нибудь кроме ссылок содержали. XmlDocument можно загрузить методом Load из любого стрима. FileStream подойдёт. Потом можно завернуть XmlDocument в класс с методами типа GetNodeById, AddReference, GetInRefs/GetOutRefs и так далее. -------------------- ![]() |
||||
|
|||||
| alir |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 383 Регистрация: 19.3.2005 Репутация: 2 Всего: 4 |
mr.DUDA
Ок, спасибо за помощь. |
|||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 110 Всего: 232 |
alir, всегда пожалуйста
-------------------- ![]() |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |