2015-11-04 3 views
0

Моя проблема в том, что я хочу преобразовать xml в список, который я могу сравнить с другим списком.XML to List <string> C#

Вот код:

XML:

<?xml version="1.0" encoding="utf-8"?> 
<body> 
    <firstrun>false</firstrun> 
    <kategorie> 
    <firstrun>true</firstrun> 
    <samochod>true</samochod> 
    <samochod1111>true</samochod1111> 
    <samochod22222>true</samochod22222> 
    </kategorie> 
    <stylkolor>1</stylkolor> 
    <themekolor>1</themekolor> 
</body> 

и код, в котором я хочу, чтобы преобразовать XML в список:

public List<string> wczytajListeKategorii() 
{ 
    XElement xdoc = XElement.Load(fileName); 

    var list = xdoc.Elements("kategorie"); 

    List<string> selectedCollection = list.ToList(); 

    return selectedCollection; 
} 

Unfotunatelly он не работает.

Спасибо за помощь

+5

Вы можете расширить на «не работает»? Что он делает? – GendoIkari

+5

Что не работает? Вы получаете исключение? –

+1

Я бы порекомендовал изучить структуру XML Serialization в .NET. Вы можете превратить свой XML в объект и сравнить члены двух классов. Начиная с VS2013 вы можете вставлять XML в окно редактора и генерировать класс на основе структуры XML. –

ответ

2

Я не знаю, что вы точно хотите сделать, но пусть встретились сказать вам, что ваш код не будет компилироваться из-за этой линии List<string> selectedCollection = list.ToList();

list.ToList() возвращает коллекцию од XElement введите не набор строк.

Если вы просто хотите, чтобы retrive значения в каждом узле Kategorie элемента это то, что вы хотите сделать:

var list = xdoc.Elements("kategorie").Elements().Select(p => p.Value); 
List<string> selectedCollection = list.ToList(); 
+2

Или в одной строке, 'Список list = xdoc.Elements (" kategorie "). Элементы(). Выберите (p => p.Value) .ToList();' – Tim

+0

спасибо! Я был афк;) –