尝试使用VB.net序列化和反序列化xml文件

苏伦杜

序列化后,xml文件应该像这样,然后在vb.net中反序列化。我是编程的开端。任何帮助表示赞赏。

<?xml version="1.0"?>
<Countries>
  <Country>
    <CID>1</CID>
    <CountryName>India</CountryName>
    <States>
      <State> New Delhi </State>
      <State> Maharashtra </State>
      <State> Rajasthan </State>
    </States>
  </Country>
  <Country>
    <CID>2</CID>
    <CountryName>United States</CountryName>
    <States>
      <State> Washington </State>
      <State> Texas </State>
    </States>
  </Country>
  <Country>
    <CID>3</CID>
    <CountryName>Australia</CountryName>
    <States>
      <State> Queensland </State>
      <State> Victoria </State>
    </States>
  </Country>
</Countries>
斯蒂克斯

我建议您一定要研究XML序列化。在MSDN上可以找到很多信息(但也可以使用任何搜索引擎)。例如在MSDN上:XML序列化介绍

如果还没有,请输入代码。我将使反序列化给定的XML结构非常简单。您可以为国家/地区创建简单的类定义,如下所示:

Public Class Country
    Public Property CID As Integer
    Public Property CountryName As String
    Public Property States As List(Of String)

    Public Sub New()
        States = New List(Of String)()
    End Sub
End Class

现在这还行不通100%。您必须通过状态列表帮助序列化对象。您可以注释(带有属性)States,因此序列化程序知道每个项目的名称都不同(默认名称为<string>item</string>)。您可以为此使用XmlArrayItem属性

<Serializable()>
Public Class Country
    Public Property CID As Integer
    Public Property CountryName As String
    <XmlArrayItem("State")>
    Public Property States As List(Of String)

    Public Sub New()
        States = New List(Of String)()
    End Sub
End Class

最后,进行反序列化。我会反序列化为List(Of Country),因为它显然是一个列表。(假设以上XML存储在文件“ obj.xml”中。)

Dim serializer As New XmlSerializer(GetType(List(Of Country)))
Dim deserialized As List(Of Country) = Nothing
Using file = System.IO.File.OpenRead("obj.xml")
    deserialized = DirectCast(serializer.Deserialize(file), List(Of Country))
End Using

现在,我们仍然需要帮助序列化程序对象,因为否则它不知道如何反序列化给定的XML。因为它不能正确确定根节点。我们可以在此处使用构造函数的重载,在其中可以说出根节点是(XmlSerializer Constructor (Type, XmlRootAttribute))。

反序列化的最终代码为:

Dim serializer As New XmlSerializer(GetType(List(Of Country)), New XmlRootAttribute("Countries"))
Dim deserialized As List(Of Country) = Nothing
Using file = System.IO.File.OpenRead("obj.xml")
    deserialized = DirectCast(serializer.Deserialize(file), List(Of Country))
End Using

序列化代码(写入文件“ obj.xml”):

Dim countries As New List(Of Country)()
' Make sure you add the countries to the list

Dim serializer As New XmlSerializer(GetType(List(Of Country)), New XmlRootAttribute("Countries"))
Using file As System.IO.FileStream = System.IO.File.Open("obj.xml", IO.FileMode.OpenOrCreate, IO.FileAccess.Write)
    serializer.Serialize(file, countries)
End Using

通过搜索和阅读文档,可以很容易地找到所有这些。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用Java和简单XML序列化器/反序列化器反序列化XML文件

来自分类Dev

使用Java和简单XML序列化器/反序列化器反序列化XML文件

来自分类Dev

使用 VB.net 反序列化 XML

来自分类Dev

如何使用C#对XML文件中的数据进行序列化和反序列化?

来自分类Dev

VB .NET JSON 反序列化

来自分类Dev

使用 C# 中的注释部分序列化和反序列化 XML

来自分类Dev

如何使用.net支持对象序列化和反序列化以更改类结构?

来自分类Dev

使用 JSON.NET 反序列化和序列化字典<string, object>

来自分类Dev

使用列表反序列化xml

来自分类Dev

使用Rest Sharp反序列化本地xml文件

来自分类Dev

使用属性数量灵活的反序列化XML文件

来自分类Dev

在VB.NET中反序列化现有XML文件

来自分类Dev

使用JSON.NET和C#读取文件并反序列化JSON失败

来自分类Dev

使用JSON.Net反序列化器反序列化动态JSON

来自分类Dev

VB.Net序列化和反序列化私有成员-简单示例

来自分类Dev

VB.Net序列化和反序列化私有成员-简单示例

来自分类Dev

我正在尝试使用VB.NET 2.0反序列化JSON字符串

来自分类Dev

使用JsonTypeInfo进行序列化/反序列化

来自分类Dev

使用JsonTypeInfo进行序列化/反序列化

来自分类Dev

使用JsonTypeInfo进行序列化/反序列化

来自分类Dev

使用plpgsql序列化/反序列化

来自分类Dev

JSON使用.NET DataContractJsonSerializer序列化器与字典进行序列化/反序列化

来自分类Dev

使用Json.NET从Dictionary <string,T>派生的T类型的序列化和反序列化

来自分类Dev

如何使用Json.NET对数组的ArrayList进行序列化和反序列化

来自分类Dev

VB .Net中的JSON.Net反序列化

来自分类Dev

使用Jersey和Jackson进行Map的序列化和反序列化

来自分类Dev

VB从C#XML反序列化DataSet

来自分类Dev

使用JMS序列化器进行XML反序列化

来自分类Dev

如何创建可序列化的类以使用单个节点反序列化XML?

Related 相关文章

  1. 1

    使用Java和简单XML序列化器/反序列化器反序列化XML文件

  2. 2

    使用Java和简单XML序列化器/反序列化器反序列化XML文件

  3. 3

    使用 VB.net 反序列化 XML

  4. 4

    如何使用C#对XML文件中的数据进行序列化和反序列化?

  5. 5

    VB .NET JSON 反序列化

  6. 6

    使用 C# 中的注释部分序列化和反序列化 XML

  7. 7

    如何使用.net支持对象序列化和反序列化以更改类结构?

  8. 8

    使用 JSON.NET 反序列化和序列化字典<string, object>

  9. 9

    使用列表反序列化xml

  10. 10

    使用Rest Sharp反序列化本地xml文件

  11. 11

    使用属性数量灵活的反序列化XML文件

  12. 12

    在VB.NET中反序列化现有XML文件

  13. 13

    使用JSON.NET和C#读取文件并反序列化JSON失败

  14. 14

    使用JSON.Net反序列化器反序列化动态JSON

  15. 15

    VB.Net序列化和反序列化私有成员-简单示例

  16. 16

    VB.Net序列化和反序列化私有成员-简单示例

  17. 17

    我正在尝试使用VB.NET 2.0反序列化JSON字符串

  18. 18

    使用JsonTypeInfo进行序列化/反序列化

  19. 19

    使用JsonTypeInfo进行序列化/反序列化

  20. 20

    使用JsonTypeInfo进行序列化/反序列化

  21. 21

    使用plpgsql序列化/反序列化

  22. 22

    JSON使用.NET DataContractJsonSerializer序列化器与字典进行序列化/反序列化

  23. 23

    使用Json.NET从Dictionary <string,T>派生的T类型的序列化和反序列化

  24. 24

    如何使用Json.NET对数组的ArrayList进行序列化和反序列化

  25. 25

    VB .Net中的JSON.Net反序列化

  26. 26

    使用Jersey和Jackson进行Map的序列化和反序列化

  27. 27

    VB从C#XML反序列化DataSet

  28. 28

    使用JMS序列化器进行XML反序列化

  29. 29

    如何创建可序列化的类以使用单个节点反序列化XML?

热门标签

归档