将xml解析为多个类

时间:2014-09-03 13:53:54

标签: xml vb.net class parsing

我有以下XML文档:

<?xml version="1.0" encoding="UTF-8"?>
<Resp>
  <dData>
    <Desc></Desc>
    <dId></dId>
    <Num></Num>
    <Ref></Ref>
    <Ms></Ms>
    <Im></Im>
  </dData>
  <Type></Type>
  <RespData>
    <dc></dc>
    <sString></sString>
  </RespData>
</Resp>

以下课程:

Public Class dData
    Public Property Desc As String       
    Public Property DID As String   
    Public Property Num As Integer       
    Public Property Ref As String     
    Public Property Ms As String        
    Public Property Im As String        
End Class

Public Class RespData
    Public Property DC As Integer           
    Public Property sString As String
End Class

最后是上述的组合:

Public Class Resp
    Public Property URData As dData
    Public Property Type As String
    Public Property URRespData As RespData
End Class

我想将上面的XML解析为Resp。

我将XML文件保存到名为XMLDocument的{​​{1}}中,我写了这个:

XmlInput

然后Dim handleXML = From h In xmlInput.Elements("Resp") 返回handleXML.Count

我希望1返回HandleXML.Count(dData,Type,RespData)

然后我遍历每个元素的节点并将值保存到它所属的类中。 但它返回了3

我做错了吗? 有更好的方法吗?

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:0)

  

我希望HandleXML.Count返回3(dData,Type,RespData)

没有。 1是正确的输出,因为您的XML只包含一个<Resp>元素。为了获得<Resp>的孩子,你应该在树下再走一层:

Dim handleXML = From h In xmlInput.Elements("Resp").Elements()
'here handleXML.Count is 3'

您可能还想考虑不同的路线,查看XML序列化/反序列化:MSDN: System.Xml.Serialization.XmlSerializer