首页 > 解决方案 > 将 XML 添加到包含数组 C# 的字典中

问题描述

<status_code>0</status_code>
<status_msg>Success</status_msg> 
<customer_details>
<customer_id>1</customer_id>
<number>99884522</number>
<mobile_number>4562214555</mobile_number>
<customer_name>Test </customer_name>
<balance>457.67</balance>
</customer_details>

</xml>

我想将 xml 代码添加到字典中,我该怎么做?我希望customer_details数组也包含详细信息。

到目前为止,我尝试过

            var webResponse = new Dictionary<string, string>();
            XDocument xDoc = XDocument.Parse(xmlfile);// ("filename.xml"); 

            foreach (XElement el in xDoc.Root.Elements())
            {
                if (el.HasElements)
                {
                    webResponse.Add(el.Name.LocalName, el.Value);
                }
                webResponse.Add(el.Name.LocalName, el.Value);

            }

我想以 Json 的形式或在字典中输出

{
    "status_code": 0,
    "status_msg": "Success",

    "customer_details": {
    "customer_id": "1",
    "number": "24234234",
    "mobile_number": "24423423432", 
    "customer_name": "Test ",
    "balance": "467.67"
}

}

标签: c#xmldictionary

解决方案


您可以使用 Newtonsoft Json。

 XDocument X = XDocument.Load(@"C:\Users\XMLFile.xml");
 var elements =   X.Elements("xml"); 
     foreach (var item in elements)
        {
            string json = JsonConvert.SerializeXNode(item);
            Console.WriteLine(json);
        }

输出

   {
"xml": {
    "status_code": "0",
    "status_msg": "Success",
    "customer_details": {
        "customer_id": "1",
        "number": "99884522",
        "mobile_number": "4562214555",
        "customer_name": "Test ",
        "balance": "457.67"
    }
}
}

使用的 XML 是

 <xml>
<status_code>0</status_code>
<status_msg>Success</status_msg>
<customer_details>
  <customer_id>1</customer_id>
  <number>99884522</number>
  <mobile_number>4562214555</mobile_number>
  <customer_name>Test </customer_name>
  <balance>457.67</balance>
</customer_details>
</xml>

推荐阅读