2015-06-18 3 views
-2

Может ли кто-нибудь помочь мне десериализовать этот XML-файл в список Guid?deserialize список Guid C#

<?xml version="1.0" encoding="UTF-8"?> 
<content> 
    <0>124179e5-82b9-c551-1e88-515ec3bbe4e3</0> 
    <1>5c8246d3-5b9f-16bb-89dc-515ec4674170</1> 
    <2>9d7f4701-81e3-3c90-c743-515ec9580852</2> 
    <3>ea8d97bd-243b-b917-bc15-51764c2b2f34</3> 
</content> 

Заранее спасибо.

+1

Голосование, чтобы закрыть, как от темы: «Вопросы, ищущих отладки помощи (»? Почему не этот код работает ") должен включать в себя желаемое поведение, конкретную проблему или ошибку и кратчайший код, необходимый для его воспроизведения в самом вопросе. Вопросы без четкого описания проблемы не полезны другим читателям. См.: Как создать минимальный, полный и проверенный пример ». –

ответ

1

Ваш файл не является корректным файлом XML. Согласно W3C website, идентификаторы узлов не могут начинаться с цифр. Не соблюдая фактические идентификаторы узлов, он общий способ читать ваш список будет:

List<Guid> guids = new List<Guid>(); 
XmlDocument doc = new XmlDocument(); 
doc.Load(@"guids.xml"); 
foreach(XmlNode guidNode in doc["content"].ChildNodes) { 
    guids.Add(Guid.Parse(guidNode.Name)); 
} 
0

Использование xml здесь делает вещи более сложными, чем должно быть. Я предлагаю рефакторинга файл следующим образом:

guids.txt:

124179e5-82b9-c551-1e88-515ec3bbe4e3 
5c8246d3-5b9f-16bb-89dc-515ec4674170 
9d7f4701-81e3-3c90-c743-515ec9580852 
ea8d97bd-243b-b917-bc15-51764c2b2f34 

кода (C#):

List<Guid> guids = File.ReadAllLines(@"guids.txt").Select(l => Guid.Parse(l)).ToList(); 
+1

благодарит за ответ, Файл отправлен из WebApi, поэтому я не могу изменить его структуру. –

Смежные вопросы