首頁 > 後端開發 > C++ > 如何將XML文檔當作C#對象?

如何將XML文檔當作C#對象?

Barbara Streisand
發布: 2025-02-02 17:36:10
原創
729 人瀏覽過

How to Deserialize XML Documents into C# Objects?

.NET環境下XML文檔的反序列化詳解

在.NET應用程序中處理XML文檔時,經常需要將XML文檔反序列化為C#對象。此過程涉及將XML數據轉換為相應的C#表示形式。

示例XML文檔

考慮以下包含各種汽車信息的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>
登入後複製

定義C#類

為了反序列化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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板