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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Выбрать все дочерние узлы, если узел равен... 
:(
    Опции темы
boobonick
Дата 18.8.2013, 20:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 22.8.2011

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



Здравствуйте! Не знаю как реализовать. Есть xml: 

Код

<House xsi:type="House" availToken="fgdfgdhhgghhfrtx">
        <ContractList>
            <Contract>
                <Name>Gin</Name>                
                <Classification code="NOR">Online Price</Classification>
            </Contract>
        </ContractList>
</House>
<House xsi:type="House" availToken="fgdfdfgdfgdgdh">
        <ContractList>
            <Contract>
                <Name>Lin</Name>                
                <Classification code="NOR">Offline Price</Classification>
            </Contract>
        </ContractList>
</House>

.......

Как мне при помощи linq выбрать только те узлы , в которых есть Online Price и вывести все элементы из House . Т.е. получается что первый House надо вывести, а второй уже не попадает под условие и его не выводим
PM MAIL   Вверх
boobonick
Дата 18.8.2013, 20:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 22.8.2011

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




                var elements =
                    from e in xdoc.Root.Elements().Descendants()
                    where e.Name=="Name"
                    select e;


                foreach (XElement e in elements)
               {

                   Debug.WriteLine("Элемент {0} : значение = {1}", e.Name, e.Value);
               }
                   

Но мне надо чтобы выбиралось все из узла когда   where e.Name=="Name"
PM MAIL   Вверх
mihryak
Дата 20.8.2013, 17:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 731
Регистрация: 28.4.2007
Где: С-Пб

Репутация: 1
Всего: 36



Код

<?xml version="1.0" encoding="utf-8"?>
<Houses>
    <House availToken="1">
            <ContractList>
                <Contract>
                    <Name>Gin</Name>                
                    <Classification code="NOR">Online Price</Classification>
                </Contract>
            </ContractList>
    </House>
    <House availToken="2">
            <ContractList>
                <Contract>
                    <Name>Lin</Name>                
                    <Classification code="NOR">Offline Price</Classification>
                </Contract>
            </ContractList>
    </House>
    <House availToken="3">
            <ContractList>
                <Contract>
                    <Name>Lin2</Name>                
                    <Classification code="NOR">Offline Price</Classification>
                </Contract>
                <Contract>
                    <Name>Gin2</Name>                
                    <Classification code="NOR">Online Price</Classification>
                </Contract>
            </ContractList>
    </House>
</Houses>


Код

            var root = XElement.Load("xml.xml");
            var houses = root.Elements("House")
                .Where(house => house.Element("ContractList").Elements("Contract").Any(contract => contract.Element("Classification").Value == "Online Price"));

Выберет дома, у которых в списке контрактов есть Online Price
PM MAIL ICQ   Вверх
boobonick
Дата 25.8.2013, 12:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 22.8.2011

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



Цитата

.Any(contract => contract.Element("Classification").Value == "Online Price"));

Вопрос, а что если несколько значений  Online Price, тест1, тест2  и необходимо чтобы выбиралось только лишь при совпадении всех условий. 

PM MAIL   Вверх
olok900
Дата 7.5.2018, 15:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 7.5.2018

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




Модератор: Сообщение скрыто.

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | LINQ (Language-Integrated Query) | Следующая тема »


 




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


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

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