|
xml - дерево или сеть?
|
|||
---|---|---|---|
#18+
Добрый день! Вопрос только начал знакомиться с xml, но очень срочно нужно решить ряд вопросов. Поэтому хотелось бы узнать мнение более опытных: То что я видел в xml является древовидной структурой (у каждого узла 1 предок). Возможно ли с помощью xml смоделировать сеть - когда внутри дерева возможны ссылки из одного узла на другой? Есть ли какие-либо варианты? Заранее спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2011, 11:25 |
|
xml - дерево или сеть?
|
|||
---|---|---|---|
#18+
Физически xml это дерево, без вариантов. Логически же ничто не мешает добавить в узел ссылки на другие узлы в виде новых узлов с xpath-текстом, описывающим путь от текущего узла к тому, на который ссылаемся. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2011, 12:47 |
|
xml - дерево или сеть?
|
|||
---|---|---|---|
#18+
Спасибо! Если делать это с помощью XPath, то если строить запросы к этому xml с помощью того же XPath или XQuery, то получить значения по ссылкам, конечно не удастся. Тогда получается надо дублировать узлы, на которые ссылаешься и которые находятся в другом месте дерева... Но надо отлавливать циклы и растет размер дерева... ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2011, 21:11 |
|
xml - дерево или сеть?
|
|||
---|---|---|---|
#18+
pol-d-nikесли строить запросы к этому xml с помощью того же XPath или XQuery, то получить значения по ссылкам, конечно не удастсяПочему это вдруг? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2011, 21:48 |
|
xml - дерево или сеть?
|
|||
---|---|---|---|
#18+
то есть хотите сказать, удастся? и он будет извлекать узлы по ссылкам... интересно, надо попробовать... ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2011, 22:37 |
|
xml - дерево или сеть?
|
|||
---|---|---|---|
#18+
Не какой-то непонятный "он", а вы. Вы должны будете написать программную логику, которая находила бы узлы по таким ссылкам. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2011, 09:12 |
|
xml - дерево или сеть?
|
|||
---|---|---|---|
#18+
Просто подумал, что есть способ заставить XPath переходить по этой ссылке без внешнего вмешательства - воспринимать как продолжение дерева. видимо нельзя и надо программировать переход по ним? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2011, 20:13 |
|
xml - дерево или сеть?
|
|||
---|---|---|---|
#18+
Вы все еще надеетесь, что нет? Лучше поставьте конкретную задачу, которая требовала бы для решения такой логики, а мы попробуем ее решить в рамках XML. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2011, 20:32 |
|
xml - дерево или сеть?
|
|||
---|---|---|---|
#18+
Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2011, 21:56 |
|
xml - дерево или сеть?
|
|||
---|---|---|---|
#18+
Ну например вот такой хмл: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
Надеюсь, правильно прописал путь к объекту <Type1 name='Obj1'>. Необходимо найти все значения узла <Prop1> для элементов Type1, вложенных в <Type2 name='Obj2'>. Значение XPath обозначает ссылку на другой элемент. XPath для извлечения использовал вот такой: Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2011, 17:16 |
|
xml - дерево или сеть?
|
|||
---|---|---|---|
#18+
pol-d-nikНеобходимо найти все значения узла <Prop1> для элементов Type1, вложенных в <Type2 name='Obj2'>. .......... XPath для извлечения использовал вот такой: Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2011, 01:30 |
|
xml - дерево или сеть?
|
|||
---|---|---|---|
#18+
Он возвращает элементы Prop со значениями f и e. Но все началось с того, чтобы обращаться с помощью ссылок, хранящихся в узлах, к другим узлам дерева. То есть в примере выше надо еще перейти по ссылке и получить значения f, e, a и b. Есть ли какие-нибудь мысли как это можно сделать в 1м XPath запросе? Буду благодарен за любую помощь... ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2011, 02:59 |
|
xml - дерево или сеть?
|
|||
---|---|---|---|
#18+
pol-d-nikВопрос - можно ли как-то это сделать в 1 выражении XPath?Приведу пример, пока ты еще какие-нибудь условия не придумал... Например: черное, белое не называть; да, нет не говорить; и самое главное не танцевать... Итак, XML: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27.
XSL, c XPath в 1 строку: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2011, 11:43 |
|
xml - дерево или сеть?
|
|||
---|---|---|---|
#18+
Спасибо! Только вопрос - а какой смысл использовать именно XPath 2.0? Я написал вот так: Код: plaintext
и вполне работает. И минус в таком решении получается, что если в xml большая вложенность и ссылки могут быть на любом уровне, то надо прописывать возможность перехода по ссылке в любом месте, где она может быть. Длина запроса будет расти катастрофически. Но по-другому видимо не сделаешь... ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2011, 12:52 |
|
xml - дерево или сеть?
|
|||
---|---|---|---|
#18+
pol-d-nik, Почитайте в описании DTD про аттрибуты типов ID и IDREF, а в описании XSLT --- про id() и key() . И будет вам счастье. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2011, 13:36 |
|
xml - дерево или сеть?
|
|||
---|---|---|---|
#18+
pol-d-nikСпасибо! Только вопрос - а какой смысл использовать именно XPath 2.0? Я написал вот так: Код: plaintext
и вполне работает. И минус в таком решении получается, что если в xml большая вложенность и ссылки могут быть на любом уровне, то надо прописывать возможность перехода по ссылке в любом месте, где она может быть. Длина запроса будет расти катастрофически. Но по-другому видимо не сделаешь...А то что порядок нарушился, тя не беспокоит? Но... вообще не о том речь... ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2011, 14:02 |
|
xml - дерево или сеть?
|
|||
---|---|---|---|
#18+
И еще, ощути разницу с таким XML: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2011, 14:06 |
|
xml - дерево или сеть?
|
|||
---|---|---|---|
#18+
refreg, При правильном DTD, //Type1[@id=чего-то_глобальное] вместо id(чего-то_глобальное)[name()='Type1'] является, мягко говоря, тормозом. При неправильном DTD xsl:key c успехом заменяет id, только перевычисляется при каждом применении стайлшита к одному и тому же документу. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2011, 14:13 |
|
xml - дерево или сеть?
|
|||
---|---|---|---|
#18+
Спасибо, разницу ощутил... ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2011, 18:08 |
|
xml - дерево или сеть?
|
|||
---|---|---|---|
#18+
Случайно натолкнулся: Языки описания и средства визуализации графов И из этой статьи узнал, что для работы с графами придумана спецификация: GraphML Specification GraphML Primer ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2011, 08:55 |
|
xml - дерево или сеть?
|
|||
---|---|---|---|
#18+
refregСлучайно натолкнулся: Языки описания и средства визуализации графов Gephi ещё посмотрите. Обязательно. Когда Щербак писал ту заметку, Gephi был ещё не так хорош, как сейчас, потому, вероятно, и не упомянут. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2011, 15:49 |
|
|
start [/forum/search_topic.php?author=kate_pon&author_mode=last_topics&do_search=1]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
get settings: |
10ms |
get forum list: |
10ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
60ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
63ms |
get tp. blocked users: |
1ms |
others: | 401ms |
total: | 585ms |
0 / 0 |