C# XML反序列化:完整指南
背景:
反序列化是指將序列化數據轉換回其原始對象格式的過程。本文提供一個完整的指南,介紹如何將XML文檔反序列化到表示XML結構的自定義C#類中。
反序列化過程:
[Serializable]
和[XmlElement]
屬性將XML元素映射到類屬性。 <code class="language-csharp">[Serializable()] public class Car { [XmlElementAttribute("StockNumber")] public string StockNumber { get; set; } [XmlElementAttribute("Make")] public string Make { get; set; } [XmlElementAttribute("Model")] public string Model { get; set; } } [XmlRootAttribute("Cars", IsNullable = false)] public class Cars { [XmlArrayItem(typeof(Car))] public Car[] Car { get; set; } }</code>
Cars
類的實例中。 <code class="language-csharp">public class CarSerializer { public Cars Deserialize(string path) { // 读取XML文件 XmlSerializer serializer = new XmlSerializer(typeof(Cars)); using (StreamReader reader = new StreamReader(path)) { // 将XML反序列化到Cars对象 return (Cars)serializer.Deserialize(reader); } } }</code>
替代方法:
另一種方法是使用XSD(XML模式定義)生成符合XML結構的C#類。
foo.xml
xsd foo.xml
xsd foo.xsd /classes
foo.cs
,其中包含XML結構的C#類。 使用XmlReader
的替代實現:
<code class="language-csharp">XmlSerializer ser = new XmlSerializer(typeof(Cars)); Cars cars; using (XmlReader reader = XmlReader.Create(path)) { cars = (Cars)ser.Deserialize(reader); }</code>
通過以上步驟,您可以輕鬆地將XML數據反序列化到C#對像中,方便後續處理和使用。 請注意將@"path/to/cars.xml"
替換為您的實際XML文件路徑。
以上是如何將XML當選為C#類?的詳細內容。更多資訊請關注PHP中文網其他相關文章!