反序列化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
總結
- 上一篇: 2019微信网名男生
- 下一篇: 找一个婚礼直播的帖子,求有爱的jms帮帮