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

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

DDD
リリース: 2025-02-02 17:16:09
オリジナル
755 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート