ホームページ >バックエンド開発 >C++ >XMLドキュメントをC#オブジェクトに脱着するにはどうすればよいですか?

XMLドキュメントをC#オブジェクトに脱着するにはどうすればよいですか?

DDD
DDDオリジナル
2025-02-02 17:16:09809ブラウズ

How to Deserialize an XML Document into C# Objects?

c#xml降下:xmlデータをオブジェクトに変換

このガイドは、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>
これをゆるくするために、一致するC#クラスを作成します:

<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を降下させることができます

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

をXMLファイルへの実際のパスに置き換えることを忘れないでください。 xmlFilePathまたは、XSD:

を含む2段階のプロセスを使用できます

  1. XSDを生成します:

    適切なツールを使用してXMLファイルからXMLスキーマ定義(XSD)を作成します(多くのIDEがこの機能を提供します)。

  2. XSDからC#クラスを生成します:
  3. コマンドラインツール(Visual Studioに含まれています)を使用して、XSDからC#クラスを生成します。 これにより、XML構造をミラーリングするクラスが自動的に作成されます。 次に、上記のようにを使用します。 この方法は、複雑なXML構造に特に役立ちます xsd.exe

以上がXMLドキュメントをC#オブジェクトに脱着するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。