xml序列化和反序列化

Posted 国防部长

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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解析有了完美的解决方案。欢迎批评指正!
全文完!

以上是关于xml序列化和反序列化的主要内容,如果未能解决你的问题,请参考以下文章

Note4:XML序列化和反序列化

Xml 序列化和反序列化

使用 SOAP 请求 C# 的 XML 序列化和反序列化

python学习day4之路文件的序列化和反序列化

Json/XML序列化和反序列化

在C#中序列化和反序列化之间保留xml元素的顺序