C# 多层级xml转字典

前言

xml对象在做很多解析的时候会比较复杂,可以转成字典进行操作


二、转换成字典

这个方法可以适用用多层级xml结构生成字典

 public static Dictionary<string, object> CreateDict(Dictionary<string, object> dict, XmlNode root)
        {
            if (root.HasChildNodes && root.ChildNodes[0].Name != "#text")
            {
               
                foreach (XmlNode node in root.ChildNodes)
                {
                    if (node.NodeType == XmlNodeType.Element)
                    {
                        if (node.HasChildNodes && node.ChildNodes[0].Name != "#text")
                        {
                            CreateDict(dict, node);
                        }
                        else
                        {
                            dict[node.Name] = node.InnerText;
                        }
                    }
                }
            }
            return dict;
        }

调用实例:

    static void Main(string[] args)
      {
          string xml = @"<?xml version=""1.0"" encoding=""UTF-8"" standalone=""yes""?><a><b><c>SUCCESS</c><d></d><e>好发唱歌二保焊肝</e><f>1111120026</f><ff>T</ff><ffff>1111120029</ffff><ddd>0.01</ddd><ddde>120014465346256</ddde><eee>2016-08-22 12:12:00</eeee><eew>7897 </eew><qq>JsLUv6BdWdFPgXfDApgwzRmzulkng1wkv3rstb2z0Gy/cgx4jJZSGqZZ9fZIYxnJ2SSjhJs8AdLLmqucRSNoLlkAtSW71QX4pKAlplmeJ5GPaa0pk3VP5odWjBQn2Uww+G4uBAeLUXzZTkqUNTbMrGNM8e9ZGBGgWuzIeCJ301s= </qq ><ed>RSA-S</ed><eeee>2020-12-02 09:31:19</eeee></b></a>";
            XmlDocument xmlDoc = new XmlDocument();
            xmlDoc.LoadXml(xml);
            Dictionary<string, object> xmlDict = new Dictionary<string, object>();
            XmlNode root = xmlDoc.DocumentElement;
            if (root.HasChildNodes)
            {
                CreateDict(xmlDict, root);
            }
      }

最终效果可以将全部的xml节点都转换成字典格式。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值