2015-06-18 31 views
-2

任何人都可以幫我將這個xml文件反序列化成Guid列表嗎?反序列化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發送的,所以我無法改變他的結構。 –