首頁 > 後端開發 > C++ > 如何將XML當選為C#類?

如何將XML當選為C#類?

Patricia Arquette
發布: 2025-02-02 17:26:13
原創
1012 人瀏覽過

How to Deserialize XML into C# Classes?

C# XML反序列化:完整指南

背景:

反序列化是指將序列化數據轉換回其原始對象格式的過程。本文提供一個完整的指南,介紹如何將XML文檔反序列化到表示XML結構的自定義C#類中。

反序列化過程:

  1. 定義類層次結構: 創建反映XML文檔結構的C#類。使用[Serializable][XmlElement]屬性將XML元素映射到類屬性。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

[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; }

}

登入後複製
  1. 創建反序列化邏輯: 實現一個方法,將XML文檔反序列化到Cars類的實例中。

1

2

3

4

5

6

7

8

9

10

11

12

13

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);

        }

    }

}

登入後複製

替代方法:

另一種方法是使用XSD(XML模式定義)生成符合XML結構的C#類。

  • 將XML文件保存到磁盤為foo.xml
  • 生成XSD模式:xsd foo.xml
  • 生成C#代碼:xsd foo.xsd /classes
  • 這將創建foo.cs,其中包含XML結構的C#類。

使用XmlReader的替代實現:

1

2

3

4

5

6

XmlSerializer ser = new XmlSerializer(typeof(Cars));

Cars cars;

using (XmlReader reader = XmlReader.Create(path))

{

    cars = (Cars)ser.Deserialize(reader);

}

登入後複製

通過以上步驟,您可以輕鬆地將XML數據反序列化到C#對像中,方便後續處理和使用。 請注意將@"path/to/cars.xml"替換為您的實際XML文件路徑。

以上是如何將XML當選為C#類?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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