zoukankan      html  css  js  c++  java
  • 反序列化xml

    我是.net 菜鸟。

    今天学习一下反序列化xml,即将xml文件转换成程序更好识别的对象。

    下面来看一个例子。这是一个xml文件。

    <xml>

    <students>

    <student>

    <fields>

    <field value="name"><field>

    <field value="id"></field>

    </fields>

    <contact value="phoneNumber">

    <telephone type="number">urgent="number">urgent contactor's number</telephone>

    <telephone type="number">urgent="number">>apartment number</telephone>

    </contact>

    </student>

    </students>

    </xml>

     好了,这是一个比较简单的xml文件。

    现在开始写反序列化的操作。

    在你的实现类中写一个方法

    public class ChangeXml{

    public static T DeserializeObject<T>(string xml)
            {
                var str= new StringReader(xml);
                var xmlSerializer= new XmlSerializer(typeof(T));
                var result= (T)xmlSerializer.Deserialize(str);
                return result;
            }

    }

    [XmlType(TypeName = "xml")]
        public class XmlElement
        {
            [XmlArray("Students", IsNullable = false)]
            [XmlArrayItem("Student", IsNullable = false)]
            public List<StudentElement> Students{ get; set; }
        }

     public class StudentElement
        {
           
            [XmlArray("fields", IsNullable = false)]
            [XmlArrayItem("field", IsNullable = false)]
            public List<FieldElement> fields{ get; set; }

            [XmlArray("contact", IsNullable = false)]
            [XMLAttribute("value")
            public string value{get;set;}
            [XmlArrayItem("telephone", IsNullable = false)]
            public List<PhoneElement> contact{ get; set; } 

    }

     public class PhoneElement
    {
            [XmlAttribute("type")]
            public string type{ get; set; }

            [XmlText]
            public string Value { get; set; }

      }

      

    最后调用DeserializeObject<XmlElement>()方法就行了

  • 相关阅读:
    lvs中dr模式配置脚本
    使用AFNetworking第三方下载类
    java 经常使用測试框架
    Qt5的插件机制(1)--Qt 框架中的插件载入机制概述
    leetcode笔记:Merge Sorted Array
    oracle仿全文检索切词机制实现文本信息类似度查找
    hadoop学习;datajoin;chain签名;combine()
    php函数in_array奇怪现象
    Sql_Server中怎样推断表中某列是否存在
    Java Bean 简单介绍及其应用
  • 原文地址:https://www.cnblogs.com/qiny/p/2995794.html
Copyright © 2011-2022 走看看