在.NET應用程序中處理XML文檔時,經常需要將XML文檔反序列化為C#對象。此過程涉及將XML數據轉換為相應的C#表示形式。
考慮以下包含各種汽車信息的XML文檔:
<code class="language-xml"><?xml version="1.0" encoding="utf-8"?><cars><car><stocknumber>1020</stocknumber><make>Nissan</make><model>Sentra</model></car><car><stocknumber>1010</stocknumber><make>Toyota</make><model>Corolla</model></car><car><stocknumber>1111</stocknumber><make>Honda</make><model>Accord</model></car></cars></code>
為了反序列化XML文檔,我們需要定義表示XML結構的C#類。創建兩個類:
Car類:表示單個汽車的詳細信息。
<code class="language-csharp"> [Serializable()] public class Car { [System.Xml.Serialization.XmlElementAttribute("StockNumber")] public string StockNumber{ get; set; } [System.Xml.Serialization.XmlElementAttribute("Make")] public string Make{ get; set; } [System.Xml.Serialization.XmlElementAttribute("Model")] public string Model{ get; set; } }</code>
Cars類:表示XML文檔的根元素,包含一個Car對象的數組。
<code class="language-csharp"> [System.Xml.Serialization.XmlRootAttribute("Cars", Namespace = "", IsNullable = false)] public class Cars { [XmlArrayItem(typeof(Car))] public Car[] Car { get; set; } }</code>
要反序列化XML文檔,請創建一個包含Deserialize方法的CarSerializer類:
<code class="language-csharp">public class CarSerializer { public Cars Deserialize() { string path = HttpContext.Current.ApplicationInstance.Server.MapPath("~/App_Data/") + "cars.xml"; using (XmlReader reader = XmlReader.Create(path)) { XmlSerializer ser = new XmlSerializer(typeof(Cars)); Cars cars = (Cars)ser.Deserialize(reader); return cars; } } }</code>
此方法加載XML文檔,使用XmlSerializer將其轉換為Cars對象,並返回反序列化的數據。
現在,您可以使用Deserialize方法獲取反序列化的Cars對象,然後訪問它來操作和檢索有關汽車的信息。
以上是如何將XML文檔當作C#對象?的詳細內容。更多資訊請關注PHP中文網其他相關文章!