首頁 >後端開發 >C++ >如何將XML文檔供應到C#對象?

如何將XML文檔供應到C#對象?

DDD
DDD原創
2025-02-02 17:16:09759瀏覽

How to Deserialize an XML Document into C# Objects?

本指南演示瞭如何將XML文檔轉換為C#對象,該過程稱為避難所化。 讓我們使用此示例XML:

為此,我們創建匹配的c#類:

<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的序列化。
<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; }
}

[System.Xml.Serialization.XmlRootAttribute("Cars", Namespace = "", IsNullable = false)]
public class Cars
{
    [XmlArrayItem(typeof(Car))]
    public Car[] Car { get; set; }
}</code>

記住將XmlSerializer替換為XML文件的實際路徑。 > 或者,您可以使用涉及XSD的兩步過程:

<code class="language-csharp">XmlSerializer serializer = new XmlSerializer(typeof(Cars));
Cars carData;
using (XmlReader reader = XmlReader.Create(xmlFilePath)) // xmlFilePath should be replaced with the actual file path
{
    carData = (Cars)serializer.Deserialize(reader);
}</code>

xmlFilePath生成XSD:

使用適當的工具從XML文件創建XML架構定義(XSD)(許多IDE提供此功能)。

從XSD中生成C#類:
  1. 使用

    命令行工具(與Visual Studio一起使用)和選項,以從XSD生成C#類。 這將自動創建鏡像XML結構的類。 然後,使用如上圖所示。 該方法對於復雜的XML結構特別有用。 >

以上是如何將XML文檔供應到C#對象?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn