Группировка результатов от XPathSelectelements в C # -- c# поле с участием xml поле с участием xpath пол Связанный проблема

Grouping results from XPathSelectElements in C#


-2
vote

проблема

русский

У меня есть XML в следующей структуре

 <код> <root>          <Node>         <value>a</value>         <value>b</value>         <value>c</value>     </Node>     <Node>         <value>d</value>         <value>e</value>         <value>f</value>      </Node>     <Node>         <value>x</value>         <value>y</value>     </Node>   </root>   

Я хочу использовать XPath ./ ROOD / NODE / VALUE Для выбора узлов Значение CONTRACES, сгруппированные по их разделе, в списках. Таким образом, результат - 3 списка [A, B, C], [D, E, F], [X, Y].

Как я могу добиться этого, используя C #?

Спасибо заранее.

Английский оригинал

I have an xml in the following structure

<root>          <Node>         <value>a</value>         <value>b</value>         <value>c</value>     </Node>     <Node>         <value>d</value>         <value>e</value>         <value>f</value>      </Node>     <Node>         <value>x</value>         <value>y</value>     </Node>   </root> 

I want to use the XPath ./root/Node/value to select the value nodes grouped by their section into lists. So the outcome is 3 list [a, b, c], [d, e, f], [x, y].

How can I achieve that using C#?

Thanks in advance.

</div
        
   
   

Список ответов

2
 
vote

Использование linq к xml

 <код> var xDoc = XDocument.Load(filename);  var lists = xDoc.Descendants("Node")             .Select(n => n.Elements("value").Select(v => v.Value).ToList())             .ToList();   

или

 <код> var lists = xDoc.XPathSelectElements("//Node/value")             .GroupBy(x => x.Parent)             .Select(x => x.Select(y => y.Value).ToList())             .ToList();   
 

Using Linq To Xml

var xDoc = XDocument.Load(filename);  var lists = xDoc.Descendants("Node")             .Select(n => n.Elements("value").Select(v => v.Value).ToList())             .ToList(); 

OR

var lists = xDoc.XPathSelectElements("//Node/value")             .GroupBy(x => x.Parent)             .Select(x => x.Select(y => y.Value).ToList())             .ToList(); 
</div
 
 
0
 
vote

Вы можете использовать <код> LINQ to XML , чтобы легко достичь цели. В большинстве случаев приятно иметь вашу коллекцию как <Код> IEnumerable вместо <кода> List .

 <код> MERGE dbo.Table1 USING dbo.Source ON Source.Key = Table1.Key  WHEN MATCHED THEN UPDATE SET Data1=Source.Data1, Data2=Source.Data2  WHEN NOT MATCHED BY TARGET THEN INSERT VALUES(Source.Key, Source.Data1, Source.Date2)  WHEN NOT MATCHED BY SOURCE THEN DELETE  OUTPUT $Action, isnull(Source.Key,Table1.Key),     deleted.Data1,deleted.Data2,    inserted.Data1,inserted.Data2; 0  
 

You can use LINQ to XML to easily achieve your goal. In most cases it is good to have your collection as IEnumerable instead of List.

var doc = XDocument.Parse(xml); var nodes = doc.Descendants("Node")             .Select(n => n.Elements().Select(e => e.Value)); 
</div
 
 

Связанный проблема

14  Структура космического эффекта в памяти для отсортированного текста поддерживает префикс поиска  ( Space efficient in memory structure for sorted text supporting prefix searches ) 
У меня есть проблема: мне нужен космический поиск файловой системы, основанных на префиксе файлового пути. Преобразование поиска отсортированного текста, друг...

1  Очистка C # код  ( Cleaning up c sharp code ) 
Есть ли какой-нибудь инструмент, который очищает C # .NET кода всех комментариев, отладки, документацию при развертывании его на сервер? Я хочу использовать...

1  EntityFramework 5 CodeFirst Rice родитель одного типа не обновляет / сохранение  ( Entityframework 5 codefirst child parent of the same type not updating saving ) 
У меня есть <код> class называется раздел <код> public class Section { public Section() { construct(0); } public Section(int order) { construct(ord...

3  Как я могу использовать список?  ( How can i use listdictionary ) 
Я могу заполнить мой список listdicticatic, но, если запущена ошибка, возвращается мне в "Foreach (kne ky ky в ld.keys)" (исключение недействительной операции...

0  Обновление данных с той же первичным ключом  ( Updating data with same primary key ) 
Я читаю данные из файла CSV и добавление данных в базу данных. Во время вставки данных в базу данных я хочу обновить данные с той же первичной клавишей. e.g...

-6  Linux и CSHARP, проверьте, если файл / папка не существует в Linux, если так, запустите mkdir через csharp ssh - [закрыто]  ( Linux and csharp check if file folder doesnt exist in linux if so run mkdir ) 
<в сторону CLASS = "S-NEWACTS S-WELTIVE__info JS-Post-New Imide MB16« Роль = «Статус»> закрыт . Этот вопрос нуждается в Детали или ясность . В настоящее...

1  C # Словарь <Объект, t> Значение поиска  ( C sharp dictionaryobject t lookup value ) 
Не уверены, как лучшее фразу, наверное, это, вероятно, почему у меня трудно посмотреть это. Вот приложение для пробной консоли для демонстрации моего значения...

14  Datagridviewcomboboxcolumn Добавление различных элементов к каждой строке  ( Datagridviewcomboboxcolumn adding different items to each row ) 
Я создаю таблицу, используя datagridview, где пользователь может выбрать элементы из раскрывающегося списка в каждой ячейке. Чтобы упростить проблему, давайте...

9  Ответ ASP.NET.redirect с jQuery Mobile - URL-хешированием  ( Asp net response redirect with jquery mobile url hashing ) 
У меня есть стандартные формы Auth Asp.net приложение. Моя регистрация и страница входа в систему находятся в одном файле .aspx с 2 мобильными страницами jQue...

0  Причина определенных ограничений на преобразования дисперсии в C #  ( Reason for certain restrictions on variance conversions in c sharp ) 
У меня есть несколько вопросов о том, как неявные преобразования между методом делегатов в отношении ковариации и контравариации реализуются в C #. <код> de...

3  OnleftClick & OnrightClick JavaScript Функции  ( Onleftclick onrightclick javascript functions ) 
В моем боковом коде сервера я динамически строим таблицу и именно сейчас я добавляю следующий код, чтобы обрабатывать Щелчок строки. <код> tr.Attributes.Add...

0  Что это за кодирование? (Найдено в Outlook / filitory)  ( What is this encoding found in outlook filesite ) 
Я работаю над Addin Outlook VSTO, который будет подключать аддин для файлового файла imagiate, я в настоящее время пытаюсь получить доступ к идентификатору в ...

5  Объект к сопоставлению объекта  ( Object to object mapping utility ) 
Мне нравится чисто разделить публику и домен объекты (Итак, nhibernate не поможет здесь) друг от друга, которые заставляют меня писать много кода, чтобы ото...

0  .NET Условно используют библиотеку .NET, если установлено  ( Net conditionally use a net library if installed ) 
Мой вопрос довольно просто. Я хочу добавить новый раздел в мой проект, который будет использоваться библиотеки SMO ​​.NET (объект управления SQL Server). Я сч...

0  Каркас экспорта данных или инструменты  ( Data export framework or tools ) 
Есть ли какие-либо данные экспорта данных в .NET или что-то. Мне нужно устройство набора инструментов для экспорта наследие и данных из более старых / устарев...

Связанный проблема

14  Структура космического эффекта в памяти для отсортированного текста поддерживает префикс поиска 
1  Очистка C # код 
1  EntityFramework 5 CodeFirst Rice родитель одного типа не обновляет / сохранение 
3  Как я могу использовать список? 
0  Обновление данных с той же первичным ключом 
-6  Linux и CSHARP, проверьте, если файл / папка не существует в Linux, если так, запустите mkdir через csharp ssh - [закрыто] 
1  C # Словарь <Объект, t> Значение поиска 
14  Datagridviewcomboboxcolumn Добавление различных элементов к каждой строке 
9  Ответ ASP.NET.redirect с jQuery Mobile - URL-хешированием 
0  Причина определенных ограничений на преобразования дисперсии в C # 
3  OnleftClick & OnrightClick JavaScript Функции 
0  Что это за кодирование? (Найдено в Outlook / filitory) 
5  Объект к сопоставлению объекта 
0  .NET Условно используют библиотеку .NET, если установлено 
0  Каркас экспорта данных или инструменты