Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.04.2013, 23:54   #1
Gift020
Пользователь
 
Регистрация: 26.12.2011
Сообщений: 20
Вопрос C#. Парсинг XML-файла с использованием библиотеки System.xml.linq

Здравствуйте!
Пишу небольшую программку-конвертор XML-файлов из одно формата в другой. Для чтения и записи данных в XML использую возможности библиотеки System.xml.linq.

Нужно добраться до содержимого XML-тегов c определенным значением атрибутов на N-ом уровне вложенности.

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

Ниже работающий кусочек кода. Прошу Вашей помощи.

Код:
private static void ReadXml()
        {
            XDocument doc = XDocument.Load(fileName);
            foreach (XElement el in doc.Root.Elements().Elements().Elements().Elements("Cell"))
            {
                Console.WriteLine("{0}", el.Value);
            }
            Console.ReadKey();
        }
Gift020 вне форума Ответить с цитированием
Старый 04.04.2013, 00:26   #2
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

xpath учите
eval вне форума Ответить с цитированием
Старый 04.04.2013, 01:42   #3
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,119
По умолчанию

Gift020

Пишу небольшую программку-конвертор XML-файлов из одно формата в другой.
...
xpath учите

Правильный ответ - учите xslt
Rififi вне форума Ответить с цитированием
Старый 04.04.2013, 08:40   #4
Gift020
Пользователь
 
Регистрация: 26.12.2011
Сообщений: 20
По умолчанию

В данном случае, мне нужно модифицировать приведенный выше метод таким образом, чтобы он не только выводил в консоль содержимое тегов "Cell", но и отфильтровывал выводимый список по определенному значению атрибута в данном тэге. Ведь для этого вовсе не обязательно применение ни XPath ни XSLT?
Gift020 вне форума Ответить с цитированием
Старый 04.04.2013, 10:08   #5
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

не обязательно но предпочтительно
eval вне форума Ответить с цитированием
Старый 04.04.2013, 13:44   #6
Gift020
Пользователь
 
Регистрация: 26.12.2011
Сообщений: 20
По умолчанию

При считывании XML-атрибута с указанным префиксом пространства имен ss:Type="String" выдает ошибку:
Цитата:
XMLException не обработано: Знак ":", шестнадцатеричное значение 0x3A, не может использоваться в именах.
Считывал так:
Код:
Console.WriteLine("{0}", el.Attribute("ss:Type").Value);
Можно ли как-то это обойти?
Gift020 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Парсинг XML с использованием TXMLDocument ВанекПВМ Компоненты Delphi 3 05.02.2013 10:54
парсинг xml файла 3Gern Общие вопросы по Java, Java SE, Kotlin 0 14.11.2012 07:04
LINQ to XML iiunbreakableii C# (си шарп) 0 03.08.2011 18:35
TreeView сохранить в xml использую linq iukash C# (си шарп) 3 24.07.2011 16:45
сформировать xml-файл на основе другого xml-файла NieL Общие вопросы Delphi 2 21.12.2010 15:49