反序列化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>()方法就行了

转载于:https://www.cnblogs.com/qiny/archive/2013/04/02/2995794.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值