【问题标题】:How to deserialize 5-6 level tags using VB.NET如何使用 VB.NET 反序列化 5-6 级标签
【发布时间】:2019-11-26 06:42:55
【问题描述】:
<world> 
    <apac>
        <sasia> 
            <india>
                <sindia>
                    <tn>CHENNAI
                    <tn>Madurai





    <apac>
        <sasia> 
            <india>
                <sindia>
                    <ka>Bangalore
                    <ka>Mysore

当我尝试 4 级标签时它的工作原理,但对于 5 级标签它没有帮助。

我试过了: trying to serialize and deserialize an xml file using VB.net

【问题讨论】:

  • 也许this会给你一些提示。
  • 这真的是 xml 的样子吗?您没有结束标签。如果是这样,那么xml序列化将不起作用!如果您有有效的xml文件,请在您的问题中提供一个真实的例子,否则我们无法准确地帮助您。
  • 或者thisvb.net版。还是很热。

标签: vb.net


【解决方案1】:

假设您的 xml 已正确关闭标签等,

<?xml version="1.0" encoding="utf-8" ?>
<world>
  <apac>
    <sasia>
      <india>
        <sindia>
          <tn>CHENNAI</tn>
          <tn>Madurai</tn>
        </sindia>
      </india>
    </sasia>
  </apac>
  <apac>
    <sasia>
      <india>
        <sindia>
          <ka>Bangalore</ka>
          <ka>Mysore</ka>
        </sindia>
      </india>
    </sasia>
  </apac>
</world>

这里有一些类可以用来定义你的模型

<XmlRoot("world")>
Public Class World
    <XmlElement("apac")>
    Public Property Apacs As List(Of Apac)
End Class
Public Class Apac
    <XmlElement("sasia")>
    Public Property Sasia As Sasia
End Class
Public Class Sasia
    <XmlElement("india")>
    Public Property India As India
End Class
Public Class India
    <XmlElement("sindia")>
    Public Property Sindia As Sindia
End Class
Public Class Sindia
    <XmlElement("ka")>
    Public Property Kas As List(Of String)
    <XmlElement("tn")>
    Public Property Tns As List(Of String)
End Class

以及可用于反序列化的代码

Dim myWorld As World
Dim s As New XmlSerializer(GetType(World))
Using sr As New StreamReader("filename.xml")
    myWorld = DirectCast(s.Deserialize(sr), World)
End Using

以及可以用来测试它的代码。

Console.WriteLine(myWorld.Apacs.First().Sasia.India.Sindia.Tns.First())
Console.WriteLine(myWorld.Apacs.Last().Sasia.India.Sindia.Kas.First())

钦奈
班加罗尔

当然,如果您的 xml 看起来不像这样(我必须承认我做了一些猜测),那么这段代码将无法工作。如果必须,请在需要时通过关闭 xml 标签来更新您的问题,我们可以制定正确的解决方案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-28
    相关资源
    最近更新 更多