Html 如何使用多个列表反序列化表

Html 如何使用多个列表反序列化表,html,vb.net,xml-serialization,Html,Vb.net,Xml Serialization,我无法反序列化此表,因为有多个列表,我知道我需要一个列表,用于重复的trs,也用于重复的tds,当尝试读取tds的值时,问题就出现了,因为我有一个列表格式 以下是我的xml: <table> <tr> <td>1</td> <td>2</td> </tr> <tr> <td>3</td> <td>4</td> </tr>

我无法反序列化此表,因为有多个列表,我知道我需要一个列表,用于重复的trs,也用于重复的tds,当尝试读取tds的值时,问题就出现了,因为我有一个列表格式

以下是我的xml:

<table>
 <tr>
  <td>1</td>
  <td>2</td>
 </tr>
 <tr>
  <td>3</td>
  <td>4</td>
 </tr>
</table> 

那么,关于如何获得tds中的每个值,有什么想法吗?谢谢

您当前将
tr.td
声明为一个列表,因此不能仅将其作为单个字符串输出。您需要循环浏览列表中的每个
td
项:

For Each currTr As tr In rr2.tr
    For Each currTd As td In currTr.td
        MessageBox.Show(currTd.td)
    Next
Next
但是,这不会正确读取示例XML中的值。在您的示例中,每个
td
元素都包含一个字符串,而不是另一个同名子元素。但您的数据结构假定XML的结构如下所示:

<table>
 <tr>
  <td>
   <td>1</td>
  </td>
  <td>
   <td>2</td>
  </td>
 </tr>
 <tr>
  <td>
   <td>3</td>
  </td>
  <td>
   <td>4</td>
  </td>
 </tr>
</table>
Public Class table
    Private newtr As List(Of tr)
    <XmlElement()> _
    Public Property tr() As List(Of tr)
        Get
            Return newtr
        End Get
        Set(ByVal value As List(Of tr))
            newtr = value
        End Set
    End Property
End Class


Public Class tr
    Private newtd As List(Of String)
    <XmlElement()> _
    Public Property td() As List(Of String)
        Get
            Return newtd
        End Get
        Set(ByVal value As List(Of String))
            newtd = value
        End Set
    End Property
End Class
For Each currTr As tr In rr2.tr
    For Each currTd As String In currTr.td
        MessageBox.Show(currTd)
    Next
Next

您当前将
tr.td
声明为列表,因此不能仅将其作为单个字符串输出。您需要循环浏览列表中的每个
td
项:

For Each currTr As tr In rr2.tr
    For Each currTd As td In currTr.td
        MessageBox.Show(currTd.td)
    Next
Next
但是,这不会正确读取示例XML中的值。在您的示例中,每个
td
元素都包含一个字符串,而不是另一个同名子元素。但您的数据结构假定XML的结构如下所示:

<table>
 <tr>
  <td>
   <td>1</td>
  </td>
  <td>
   <td>2</td>
  </td>
 </tr>
 <tr>
  <td>
   <td>3</td>
  </td>
  <td>
   <td>4</td>
  </td>
 </tr>
</table>
Public Class table
    Private newtr As List(Of tr)
    <XmlElement()> _
    Public Property tr() As List(Of tr)
        Get
            Return newtr
        End Get
        Set(ByVal value As List(Of tr))
            newtr = value
        End Set
    End Property
End Class


Public Class tr
    Private newtd As List(Of String)
    <XmlElement()> _
    Public Property td() As List(Of String)
        Get
            Return newtd
        End Get
        Set(ByVal value As List(Of String))
            newtd = value
        End Set
    End Property
End Class
For Each currTr As tr In rr2.tr
    For Each currTd As String In currTr.td
        MessageBox.Show(currTd)
    Next
Next

啊!!是你:)我没有通过你的数值认出你。我需要更新我的照片。恐怕有点太麻烦了。我应该把它修好,你看起来像个程序员,没什么问题。:)啊!!是你:)我没有通过你的数值认出你。我需要更新我的照片。恐怕有点太麻烦了。我应该把它修好,你看起来像个程序员,没什么问题。:)