Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Получить все namespace из XML 
V
    Опции темы
Dray
Дата 13.8.2010, 19:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Материалист
**


Профиль
Группа: Участник
Сообщений: 652
Регистрация: 7.10.2003
Где: г. Всеволожск

Репутация: нет
Всего: 6



Как программно на C# из Xml документа получить список всех namespace'ов вместе с их префиксами?


--------------------
忍者

user posted image
PM MAIL   Вверх
diadiavova
Дата 14.8.2010, 08:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 31
Всего: 142



В разных областях видимости одни и те же префиксы могут ссылаться на разные пространства имен, кроме того, одному и тому же пространству может быть сопоставлено несколько префиксов даже в одной области видимости. Таким образом, в одном документе однозначного соответствия префиксов и пространств имен может и не быть. 

А вообще каждый узел имеет свойство NamespaceURI, а так же методы GetNamespaceOfPrefix и GetPrefixOfNamespace, которые позволяют разрешать все вопросы с пространствами и префиксами для той области видимости, в которой находится этот узел.

Для документа, в котором заведомо нет вышеописанных конфликтов можно сделать примерно следующее
Код

    var xdoc = new XmlDocument();
    xdoc.Load("c:/docpath/filename.xml");
    var ns = (from XmlNode n in xdoc.SelectNodes("//node()")
             select new
             {
                 Prefix = n.GetPrefixOfNamespace(n.NamespaceURI),
                 Namespace = n.NamespaceURI
             }).Distinct();

Код не проверял, но думаю идея ясна.


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0861 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.