![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| Naum |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 743 Регистрация: 7.9.2005 Где: Саратов, ул. Поса дского, 298 Репутация: 8 Всего: 15 |
Доброго всем времени суток.
Собственно сабж. Пример:
Получается, чтобы найти элемент нужно знать, какой у него будет неймспейс Товарищи мне тут подсказали чуть-чуть (а потом отпинали, типа отстань у самих работы полно Подскажите, плиз, как получить все неймспейсы в XmlDocument или XmlElement. Или другие способы, как найти нод, если не известен его неймспейс. З.Ы. 1-й Фреймворк. Это сообщение отредактировал(а) Naum - 23.5.2007, 12:23 -------------------- У нас всего два праздника Новый год и ТЯПница. |
|||
|
||||
| tol05 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1632 Регистрация: 21.12.2006 Где: Харьков Репутация: 63 Всего: 170 |
XmlElement.Prefix Property
XmlNode.Prefix Property XmlDocument.Prefix Property по-моему так. -------------------- На хорошей работе и сны хорошие снятся. |
|||
|
||||
| Naum |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 743 Регистрация: 7.9.2005 Где: Саратов, ул. Поса дского, 298 Репутация: 8 Всего: 15 |
неймспейс данного элемента неймспейс данного нода неймспейс корневого элемента документа Мне же нужно получить все неймспейсы, которые есть в документе. Например,
Как мне получить все неймспейсы в документе, т.е. {"rootNamespace", "firstNamespace", "secondNamespace"} -------------------- У нас всего два праздника Новый год и ТЯПница. |
|||
|
||||
| tol05 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1632 Регистрация: 21.12.2006 Где: Харьков Репутация: 63 Всего: 170 |
так же, как и получить все имена всех нодов, все атрибуты имен всех нодов, и все, что угодно: рекурсивный цикл и условие для отбора.
-------------------- На хорошей работе и сны хорошие снятся. |
|||
|
||||
| Naum |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 743 Регистрация: 7.9.2005 Где: Саратов, ул. Поса дского, 298 Репутация: 8 Всего: 15 |
Это понятно. Что мне кажется, что как-то это можно сделать через XmlDocument.NameTable, но пока не пойму как. :( -------------------- У нас всего два праздника Новый год и ТЯПница. |
|||
|
||||
| tol05 |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1632 Регистрация: 21.12.2006 Где: Харьков Репутация: 63 Всего: 170 |
вот пример через reader
может и через документ можно?
-------------------- На хорошей работе и сны хорошие снятся. |
||||
|
|||||
| Naum |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 743 Регистрация: 7.9.2005 Где: Саратов, ул. Поса дского, 298 Репутация: 8 Всего: 15 |
Пасиб. Но у меня 1-й фрэймворк. Там такого нет.
-------------------- У нас всего два праздника Новый год и ТЯПница. |
|||
|
||||
| tol05 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1632 Регистрация: 21.12.2006 Где: Харьков Репутация: 63 Всего: 170 |
чего нет? XmlNamespaceScope и GetNamespacesInScope?
Так возьми рефлектор и код сдери.
теперь есть. -------------------- На хорошей работе и сны хорошие снятся. |
|||
|
||||
| Naum |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 743 Регистрация: 7.9.2005 Где: Саратов, ул. Поса дского, 298 Репутация: 8 Всего: 15 |
-------------------- У нас всего два праздника Новый год и ТЯПница. |
|||
|
||||
| tol05 |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1632 Регистрация: 21.12.2006 Где: Харьков Репутация: 63 Всего: 170 |
Во-первых. А почему бы и нет? Код уже написан и отлажен, просто лишнее выбросишь. Или ты XmlNamespaceManager-велосипед изобретать будешь?
Во-вторых. Зачем переписывать XmlNamespaceManager? Я тебе функцию кинул, вот и вставь ее влюбой из своих классов. При вызове - передавай XmlDocument.NameTable, ну а внутри... поставь вместо nsdecls свой массив, да и заполняй его, так же, как nsdecls в конструкторе XmlNamespaceManager заполняется
Это просто вариант действующей реализации твоей мечты! Ну а код, что я запостил - это уже не их код, и даже не мой... Это твой код! Вот и делай с ним что хочешь.
-------------------- На хорошей работе и сны хорошие снятся. |
||||
|
|||||
| Naum |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 743 Регистрация: 7.9.2005 Где: Саратов, ул. Поса дского, 298 Репутация: 8 Всего: 15 |
tol05, спасибо за помощь. Я уже тоже полазил в Xml через рефлектор. Получается можно только рекурсивно добавить все неймспейсы. :( В конструкторе никаких неймспейсов в НСМенеджер не добавляется. То есть пока я их ручками не добавлю, там их и не будет. По идее все правильно. Ведь в нормальных Xml-документах все неймспейсы и, соответсвующие им, префиксы объявляются в корневом элементе, а у остальных элементов неймспейс определяется с помощью префикса. Это мне просто кривой Xml приходит. :( -------------------- У нас всего два праздника Новый год и ТЯПница. |
|||
|
||||
| tol05 |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1632 Регистрация: 21.12.2006 Где: Харьков Репутация: 63 Всего: 170 |
Ну чтогда действительно, возьми какой-нибудь из reader-ов и парси вручную. В конце концов, XmlNamespaceManager, XmlDocument так же инфу получают (внутри себя). Не с потолка же они инфу берут?
Те же reader-ы. Например
или, ф-ция XmlDocument.Load(string name) - inside
где XmlTextReader reader - см. выше Да и быстрее будет - лишнего инициализировать не будешь. -------------------- На хорошей работе и сны хорошие снятся. |
||||
|
|||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [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. |