1
A
回答
2
List<string> items = XDocument.Parse("the xml")
.Descendants("item")
.Select(item => item.Attribute("id").Value).ToList();
使用XDocument!
0
,最好的辦法是解析XML。
反序列化它需要一個由XmlSerializer支持的方案,使用XDocument來解析它。
這裏是系列化的示例:
定義類
public class item
{
[XmlAttribute("item")]
public string id { get; set; }
}
序列化
var xs = new XmlSerializer(typeof(item[]));
xs.Serialize(File.Open(@"c:\Users\roman\Desktop\ser.xml", FileMode.OpenOrCreate), new item[] { new item { id = "1" }, new item { id = "1" }, new item { id = "1" } });
結果:
<?xml version="1.0"?>
<ArrayOfItem xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<item item="1" />
<item item="1" />
<item item="1" />
</ArrayOfItem>
正如你可以看到它使用了一個特殊的XML架構,使你的XML無法解析,這意味着你將不得不手動分析XML,使用的XDocument或XmlDocument的,還是先使用XmlSerializer的序列化數據,然後反序列化。
3
其實,這是可能的 - 答案here顯示如何。只需將屬性定義爲數組,但用XmlElement
public class Item
{
[XmlAttribute("id")]
public int Id { get ;set; }
[XmlText]
public string Name { get; set; }
}
[XmlRoot("root")]
public class Root
{
[XmlElement("item")]
public Item[] Items { get;set;}
}
+0
肯定答案 –
相關問題
- 1. XML序列化陣列C#
- 2. C#陣列XML序列化
- 3. C#反序列化嵌套的xml
- 4. C#Xml反序列化嵌套對象
- 5. C#XML序列化/反序列化
- 6. C#Xml序列化和反序列化
- 7. C#XML序列化/反序列化
- 8. XML序列化和反序列化嵌套元素c#
- 9. C#反序列化XML
- 10. C#XML反序列化
- 11. C#XML反序列化
- 12. XML序列化不能反序列化陣列正確
- 13. C#Newtonsoft反序列化JSON陣列
- 14. C#JSON如何反序列化陣列
- 15. Json.NET:序列化/反序列化陣列
- 16. 反序列化的XML與內部陣列
- 17. 具有反序列化JSON嵌套陣列故障在C#
- 18. C#XML陣列反序列化僅返回第一元件
- 19. C#XML德序列化和陣列
- 20. C#XML序列化陣列和多類
- 21. 嵌套列表C#的XML反序列化#
- 22. 反序列化JSON陣列
- 23. PHP反序列化陣列
- 24. 反序列化陣列ServiceStack
- 25. 反序列化JSON陣列
- 26. C#反序列化XML陣列不同類型的成多個陣列
- 27. 反序列化嵌套的XML只
- 28. 反序列化嵌套的XML節點
- 29. 反序列化XML嵌套項
- 30. 提升序列化,原始C陣列的反序列化
反序列化爲什麼形式? –
任何對象模型 –