Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / LINQ to XML. Как осуществить выборку? / 12 сообщений из 12, страница 1 из 1
12.12.2013, 16:06
    #38498793
greshnik_05
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
LINQ to XML. Как осуществить выборку?
Вечер добрый!
имеется вот такой XML файл

Код: xml
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.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
<?xml version="1.0" encoding="utf-8"?>
<Configuration>
  <Name>Аренда</Name>
  <FormValues>
    <FormValue>
      <ID>1</ID>
      <Created>2013-12-12T10:47:36.1057181+04:00</Created>
      <Values>
        <string>6 месяцев</string>
        <string>Иван</string>
        <string>Ваня</string>
        <string>фывфыв</string>
        <string>гпморпм</string>
        <string>ор</string>
        <string>и</string>
      </Values>
    </FormValue>
    <FormValue>
      <ID>2</ID>
      <Created>2013-12-12T10:48:14.6857722+04:00</Created>
      <Values>
        <string>цкейц</string>
        <string>цукцу</string>
        <string>цукцукц</string>
        <string>цукцмца</string>
        <string>ацкцк</string>
        <string>ававаа</string>
        <string>аав</string>
      </Values>
    </FormValue>
  </FormValues>
  <FieldsForm>
    <Field>
      <Name>Срок аренды</Name>
    </Field>
    <Field>
      <Name>Арендадатель</Name>
    </Field>
    <Field>
      <Name>Съещик</Name>
    </Field>
    <Field>
      <Name>qwe</Name>
    </Field>
    <Field>
      <Name>ada</Name>
    </Field>
    <Field>
      <Name>fsdf</Name>
    </Field>
    <Field>
      <Name>asassdwefferfeferfadfasdfsdf1</Name>
    </Field>
  </FieldsForm>
</Configuration>



Нужно сделать выборку всех значений из элемента string меняя id.
Сделал так
Код: c#
1.
List<XElement> Values = xDoc.Root.Element("FormValues").Element("FormValue").Elements("Values").Elements("string").ToList();


Выдается результат где id =1. А нужно из других блоков тоже чтоб брала.
Вопрос: как выполнил запрос???
...
Рейтинг: 0 / 0
12.12.2013, 16:35
    #38498855
greshnik_05
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
LINQ to XML. Как осуществить выборку?
Решил вопрос таким образом
Код: c#
1.
List<XElement> Values = xDoc.Root.Element("FormValues").Elements("FormValue").Where(t => int.Parse(t.Element("ID").Value) == i + 1).Elements("Values").Elements("string").ToList();
...
Рейтинг: 0 / 0
12.12.2013, 17:25
    #38498969
buser
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
LINQ to XML. Как осуществить выборку?
Код: c#
1.
2.
3.
IEnumerable<string> values = xDoc.XPathSelectElements(".//Values/string")
                                                  .Select(xl => xl.Value)
                                                  .Distinct()


Что-то я про изменение айди не понял...
...
Рейтинг: 0 / 0
27.12.2013, 10:40
    #38513956
Snak2013
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
LINQ to XML. Как осуществить выборку?
Доброго времени суток пытаюсь получить данные из xml файла через линк подскажите пожалуйста где ошибка:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
static void Main(string[] args)
        {
            const string fileName = @"C:\XML\0607003_002_002_69065266_2013_0201.xml";
            XDocument xDoc = XDocument.Load(fileName);
            var query = from title in xDoc.Element("report").Elements("title")
                        select new
                        {
                            okpo = title.Element("okpo").Value,
                            name = title.Element("name").Value
                        };

            foreach (var title in query)
                Console.WriteLine("{0} {1}", title.okpo, title.name);
            Console.ReadKey(true);
        }
...
Рейтинг: 0 / 0
27.12.2013, 10:57
    #38513982
Arm79
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
LINQ to XML. Как осуществить выборку?
Snak2013,

Ошибка в коде.

PS Не все знают, какой XML в C:\XML\0607003_002_002_69065266_2013_0201.xml
...
Рейтинг: 0 / 0
27.12.2013, 11:57
    #38514044
Сон Веры Павловны
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
LINQ to XML. Как осуществить выборку?
Arm79Ошибка в коде.
Но какая - неизвестно. Уважаемая публика должна это угадать сама.
...
Рейтинг: 0 / 0
27.12.2013, 12:52
    #38514132
Snak2013
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
LINQ to XML. Как осуществить выборку?
=Текст XML файла
Код: xml
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.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
<?xml version="1.0" encoding="utf-8" ?> 
- <report code="845655855625" form="0010" year="2013" period="1" version="22-05-2013">
- <title>
  <item name="okpo" value="5556842358" />  
  <item name="name" value="Имя" /> 
  </title>
- <sections>
- <section code="1">
- <row code="1534">
  <col code="3">1265</col> 
  <col code="10">165</col> 
  <col code="11">6656</col> 
  </row>
- <row code="54761">
  <col code="3">2456</col> 
  <col code="10">25146541</col> 
  <col code="11">6565</col> 
  </row>
- <row code="24564">
  <col code="3">7</col> 
  <col code="11">7</col> 
  </row>
- <row code="22555">
  <col code="3">65</col> 
  <col code="11">12</col> 
  </row>
- <row code="2156">
  <col code="3">156</col> 
  <col code="10">1256</col> 
  <col code="11">566</col> 
  </row>
- <row code="303">
  <col code="3">17081</col> 
  <col code="10">16499</col> 
  <col code="11">582</col> 
  </row>
  </section>
  <section code="2" /> 
  <section code="3" /> 
  </sections>
  </report>




При компиляции кода ошибок нет но при попытки прочитать файл получаю исключение Ссылка на объект не указывает на экземпляр объекта.
...
Рейтинг: 0 / 0
27.12.2013, 13:07
    #38514157
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
LINQ to XML. Как осуществить выборку?
Код: c#
1.
2.
3.
4.
5.
6.
var query = from title in xDoc.Element("report").Elements("title").Elements("item")
            select new
            {
                name = title.Attribute("name").Value,
                value = title.Attribute("value").Value
            };
...
Рейтинг: 0 / 0
27.12.2013, 14:25
    #38514273
Snak2013
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
LINQ to XML. Как осуществить выборку?
МСУ
Код: c#
1.
2.
3.
4.
5.
6.
var query = from title in xDoc.Element("report").Elements("title").Elements("item")
            select new
            {
                name = title.Attribute("name").Value,
                value = title.Attribute("value").Value
            };



Попробовал но исключение по прежнему получаю тоже как и раньше "Ссылка на объект не указывает на экземпляр объекта." А выделенную ошибку исправил спасибо.
...
Рейтинг: 0 / 0
27.12.2013, 14:49
    #38514300
Arm79
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
LINQ to XML. Как осуществить выборку?
Snak2013,

странно, а у меня работает:

Код: c#
1.
2.
3.
4.
5.
6.
7.
            XDocument doc = XDocument.Parse(Resource1.Xml);

            IEnumerable<XElement> xElements = doc.Root.Element("title").Elements("item");
            foreach (var xElement in xElements)
            {
                Console.WriteLine("{0} - {1}", xElement.Attribute("name").Value, xElement.Attribute("value").Value);
            }
...
Рейтинг: 0 / 0
27.12.2013, 14:56
    #38514308
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
LINQ to XML. Как осуществить выборку?
Snak2013Попробовал но исключение по прежнему получаю тоже как и раньше "Ссылка на объект не указывает на экземпляр объекта." А выделенную ошибку исправил спасибо.

Разницу понимаем?

Snak2013
Код: c#
1.
okpo = title.Element("okpo").Value,



МСУ
Код: c#
1.
okpo = title.Element("value").Value,



P.S. Внимательнее нужно код писать.
...
Рейтинг: 0 / 0
27.12.2013, 15:12
    #38514328
Snak2013
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
LINQ to XML. Как осуществить выборку?
А вот теперь понял спасибо что разъяснили.
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / LINQ to XML. Как осуществить выборку? / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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