ホームページ >バックエンド開発 >C++ >C# を使用して辞書に XML データを追加するにはどうすればよいですか?

C# を使用して辞書に XML データを追加するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2025-01-04 00:01:42601ブラウズ

How to Populate a Dictionary with XML Data Using C#?

辞書の入力 XML データを使用

空の辞書を指定した

<items>
  <item>

  1. XML からのデータを辞書に入力し、シリアル化して戻すには、カスタム クラスと XmlSerializer クラスを利用します。
public class item
{
    [XmlAttribute]
    public int id;
    [XmlAttribute]
    public string value;
}
を使用したシリアル化カスタム クラス
  1. XML の一時コンテナとして機能するカスタム クラス項目を定義します。データ:
XmlSerializer serializer = new XmlSerializer(typeof(item[]), 
                                 new XmlRootAttribute() { ElementName = "items" });
  1. 適切な root 属性と type 属性を使用して XmlSerializer インスタンスを作成します:
serializer.Serialize(stream, 
              dict.Select(kv=>new item(){id = kv.Key,value=kv.Value}).ToArray() );

    変換して辞書をシリアル化します。 item オブジェクトの配列に変換し、シリアル化する配列:
var orgDict = ((item[])serializer.Deserialize(stream))
               .ToDictionary(i => i.id, i => i.value);
カスタム クラスを使用した逆シリアル化

XML を項目オブジェクトの配列に逆シリアル化します:

    代替: XElement の使用
  1. XElement を使用したい場合class:
XElement xElem = new XElement(
                    "items",
                    dict.Select(x => new XElement("item",new XAttribute("id", x.Key),new XAttribute("value", x.Value)))
                 );
var xml = xElem.ToString(); //xElem.Save(...);
XElement を使用したシリアル化

    XML 構造を表す XElement オブジェクトを作成します:
XElement xElem2 = XElement.Parse(xml); //XElement.Load(...)
XElement を使用した逆シリアル化
  1. XML を XElement に解析します。オブジェクト:
var newDict = xElem2.Descendants("item")
                    .ToDictionary(x => (int)x.Attribute("id"), x => (string)x.Attribute("value"));
LINQ を使用して XML からデータを抽出し、辞書に追加します:

以上がC# を使用して辞書に XML データを追加するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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