前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >xml序列化和反序列化(二)

xml序列化和反序列化(二)

作者头像
yaphetsfang
发布2020-07-30 09:47:38
5040
发布2020-07-30 09:47:38
举报
文章被收录于专栏:yaphetsfang

上篇讲到关于xml入参实体序列化,下面给出出参实体反序列化,代码如下:

代码语言:javascript
复制
    /// <summary>
    /// 反序列化
    /// </summary>
    /// <param name="strXML">XML字符串</param>
    /// <returns></returns>
    public static T DESerializer<T>(string strXML) where T : class
    {
        try
        {
            using (StringReader sr = new StringReader(strXML))
            {
                XmlSerializer serializer = new XmlSerializer(typeof(T));
                return serializer.Deserialize(sr) as T;
            }
        }
        catch (Exception ex)
        {
            return null;
        }
    }

这方法,网上一般都能找到,针对复杂的xml,可以定义不同的实体对应进行解析,这里就不多说了,我要重点说的是怎么完美解析任意xml文档,先看一下示例代码:

代码语言:javascript
复制
//xml转实体
            string xml = "<?xml version=\"1.0\" encoding=\"utf - 8\" ?>"+
                        @"<PacsResult>
                           <successe>true</successe> 
                           <msg>成功</msg>
                           <reports> 
                             <report>
                               <PatientsName>Cui Jian Hong</PatientsName>
                               <PatientsID>P57748</PatientsID>
                             </report>
                          </reports>
                         </PacsResult>";
          //  var data = XElement.Parse(xml).Descendants("report");
            var data = XElement.Parse(xml).Descendants("reports").Elements("report");
            List<rep> repList = new List<rep>();
            foreach (var item in data)
            {
                repList.Add(new rep()
                {
                    PatientsName = item.Element("PatientsName").Value,
                    PatientsID = item.Element("PatientsID").Value,
                });
            }

Descendants和Elements就可以对xml进行完美解析。

Descendants:按文档顺序返回经过筛选的此文档或元素的子代元素的集合; Elements:源集合中返回经过筛选的子集合元素的每个元素和 文档; 有什么区别呢,请参考博友的文章,通过两篇文章介绍,相信大家对入参xml封装和出参xml解析有了完美的解决方案。欢迎批评指正! 全文完!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-05-12 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
文件存储
文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档