zoukankan      html  css  js  c++  java
  • xml序列化和反序列化(二)

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

        /// <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文档,先看一下示例代码:

    //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解析有了完美的解决方案。欢迎批评指正!
    全文完!

  • 相关阅读:
    zookeeper集群
    Hbase分布式集群
    smokeping Master/Slave安装配置
    CentOS修改163源(转载)
    linux 挂载(转载)
    linux挂载U盘(转载)
    linux下修改path变量(转载)
    tar.gz和rpm安装文件(转载)
    linux ps命令(转载)
    linux free命令(转载)
  • 原文地址:https://www.cnblogs.com/yaphetsfang/p/9027880.html
Copyright © 2011-2022 走看看