powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Помогите написать запрос LINQ to XML для парсинга XML
13 сообщений из 13, страница 1 из 1
Помогите написать запрос LINQ to XML для парсинга XML
    #38329910
LINQStudent
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Разбираюсь с LINQ то XML.

Пока все получается паршиво.

Написал метод для парсинга XML, и создания типизированного списка, по извлеченным данным.
100% понимаю, что чушь написал.

Помогите понять, как надо.


Вот простой XML
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
<XML>
  <rec>
    <id>1</id>
    <name>Name 1</name>
  </rec>
  <rec>
    <id>2</id>
    <name>Name 2</name>
  </rec>
  <rec>
    <id>3</id>
    <name>Name 3</name>
  </rec>
  <rec>
    <id>4</id>
    <name>Name 4</name>
  </rec>
  <rec>
    <id>5</id>
    <name>Name 5</name>
  </rec>
</XML>




я пытаюсь его распарсить линком, и загнать значения в список.

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
     XDocument xDoc = XDocument.Parse(XML_String);

        IEnumerable<XElement> Records =
            xDoc.Elements("XML")
                .SelectMany(el => el.Elements("rec"));


        foreach (XElement rec in Records)
        {
            XElement FE = rec.Element("id");
            XElement SE = rec.Element("name");

            Items.Add(new MY_ListElem( int.Parse(FE.Value.ToString())     // здесь int
                                     , SE.Value.ToString()  		  // здесь string
                                     )                
                );
        }




Подскажите как надо правильно, пожалуйста.
...
Рейтинг: 0 / 0
Помогите написать запрос LINQ to XML для парсинга XML
    #38329969
LINQStudent
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите еще пожалуйста.

Это уже по другому XML'у вопрос :)

Как быть, если в XML только одна запись rec ?
Код: c#
1.
2.
3.
4.
5.
6.
<XML>
  <rec>
    <id>1</id>
    <name>Name 1</name>
  </rec>
</XML>



Т.е. я точно знаю, что там всего одна запись. Как ее считать Линком и записать оба значения в переменную (типа, с двумя полями)?
Я только через тупой foreach могу придумать. Но наверное есть способ попроще и элегантней.
...
Рейтинг: 0 / 0
Помогите написать запрос LINQ to XML для парсинга XML
    #38331362
LINQStudent
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
up

Странно, а почему никто не ответил на мой вопрос в пятницу в 22 часа , очень странно и подозрительно :)
...
Рейтинг: 0 / 0
Помогите написать запрос LINQ to XML для парсинга XML
    #38331393
LINQStudent
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Меня сильно смущает мой код в блоке foreach.

Как то странно все выглядит. Хочется узнать у профи, может есть решение по элегантней ?
...
Рейтинг: 0 / 0
Помогите написать запрос LINQ to XML для парсинга XML
    #38331861
LINQStudent
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ау.
Скажите чего нибудь то.

Гуру Линка есть тут ? :)
...
Рейтинг: 0 / 0
Помогите написать запрос LINQ to XML для парсинга XML
    #38331901
Фотография buser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это вам для затравки :)
Код: c#
1.
2.
IEnumerable<XElement> ls_xpath = doc.XPathSelectElements(".//rec[id[1]='1']");
IEnumerable<XElement> ls_linq = doc.Descendants("rec").Where(ex => ex.Element("id").Value == "1");



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

искать по словам linq to xml ну и xpath
...
Рейтинг: 0 / 0
Помогите написать запрос LINQ to XML для парсинга XML
    #38331969
LINQStudent
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я ооооччень любопытен на самом деле.
Но мне вот прямо сейчас нужно делать проект, чтобы он был готов прямо вчера :)

Написал криво-код. И он вполне даже работает.
И решил спросит на форуме, чтобы подсказали эффективный вариант. Мне бы пары примеров хватило, чтобы ухватить суть.

Но поверьте, как только у меня освободится время я засяду за изучения LINQ'а. Даже книжку уже присмотрел.
...
Рейтинг: 0 / 0
Помогите написать запрос LINQ to XML для парсинга XML
    #38331972
LINQStudent
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
buser(".//rec[id[1]='1']");


Пока я даже не понимаю, что делает этот код. Но интересненько.

Я пока так сделал, для одиночных записей.
XElement XE = xDoc.Elements("XML").Elements("rec").Elements("id").FirstOrDefault();
if (XE==null)
значит нет такой ветки в XML

Короче чую, что нужно повышать эффективность в Link'е, и в XMLtoLINQ в частности. Обязательно этим займусь, как разгребу тут.
...
Рейтинг: 0 / 0
Помогите написать запрос LINQ to XML для парсинга XML
    #38331989
Фотография buser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не переживайте :) Если все удачно спроектировали-разбили... рефачить реализацию конкретных методов можно и попожа :)
...
Рейтинг: 0 / 0
Помогите написать запрос LINQ to XML для парсинга XML
    #38332417
Фотография buser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хе-хе... я, как обычно, еще и не прочитал пост :) Думал с поиском беда :)
Код: c#
1.
var ls_linq = doc.Descendants("rec").Select(el => new {id = (int)el.Element("id"), name = (string) el.Element("name")}  ) ;
...
Рейтинг: 0 / 0
Помогите написать запрос LINQ to XML для парсинга XML
    #38332619
LINQStudent
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
buser,

В целом, я тоже так подумал пока.
Парсинг идет в функции. Пока работает. Заменить реализацию не сложно, программа даже не заметит.
...
Рейтинг: 0 / 0
Помогите написать запрос LINQ to XML для парсинга XML
    #38332657
LINQStudent
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В упор не вижу в чем разница между Descendants и Elements.

Зачем разрабам понадобилось писать два идентичных метода ? А почему не 5 идентичных методов ?
Хотя может это я просто еще не все видел. Может их больше двух. :)

Зачем ???
...
Рейтинг: 0 / 0
Помогите написать запрос LINQ to XML для парсинга XML
    #38332692
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LINQStudentВ упор не вижу в чем разница между Descendants и Elements.

Зачем разрабам понадобилось писать два идентичных метода ? А почему не 5 идентичных методов ?
Хотя может это я просто еще не все видел. Может их больше двух. :)

Зачем ???
Это разные XPath-оси, соответствющие в XPath-синтаксисе осям descendant и child.
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Помогите написать запрос LINQ to XML для парсинга XML
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]