用于序列化/反序列化 xml 文件的类 [英] Class to serialise/deserialise xml file
本文介绍了用于序列化/反序列化 xml 文件的类的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我需要将文件反序列化为 vb.net 对象.
I need to deserialise the file into a vb.net object.
<ANIMALS>
<ANIMAL NO = "1">Dog</ANIMAL>
<ANIMAL NO = "2">Cat</ANIMAL>
<ANIMAL NO = "3">Cow</ANIMAL>
<ANIMAL NO = "4">Fish</ANIMAL>
</ANIMALS>
我有一个名为 clsANIMALS 的类,其属性返回动物列表:
I have a class called clsANIMALS with a property returning a list of animals:
<Serializable()> _
<System.Xml.Serialization.XmlRoot("ANIMALS")> _
Public Class clsANIMALS
<System.Xml.Serialization.XmlElement("ANIMAL")> _
Public Property lstAnimal() As List(Of clsAnimal)
和一个名为 clsANIMAL 的子类,它具有属性NO"的属性:
and a sub class called clsANIMAL having a property for the attribute "NO":
<Serializable()> _
<System.Xml.Serialization.XmlRoot("ANIMAL")> _
Public Class clsANIMAL
<System.Xml.Serialization.XmlAttribute("NO")> _
Public Property iNoAnimal() As Integer
谁能告诉我如何反序列化诸如 Dog、Cat.. 之类的文本?
Can someone tell me how to deserialise the text such as Dog, Cat..?
推荐答案
您可以使用 XmlTextAttribute 获取值:
You can use the XmlTextAttribute to get values:
<Serializable()> _
<System.Xml.Serialization.XmlRoot("ANIMAL")> _
Public Class clsANIMAL
<System.Xml.Serialization.XmlAttribute("NO")> _
Public Property iNoAnimal() As Integer
<System.Xml.Serialization.XmlText()> _
Public Property strName As String
End Class
然后您可以反序列化 XML 文件并使用 strName
显示名称:
Then you can deserialize the XML file and show the names using strName
:
Dim stream = System.IO.File.OpenRead("Animals.xml")
Dim serializer = New System.Xml.Serialization.XmlSerializer(GetType([clsANIMALS]))
Dim animals As clsANIMALS = serializer.Deserialize(stream)
For Each animal In animals.lstAnimal
Console.WriteLine(animal.strName)
Next
这篇关于用于序列化/反序列化 xml 文件的类的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文