【问题标题】:Parse xml to multiple Classes将 xml 解析为多个类
【发布时间】:2014-09-03 13:53:54
【问题描述】:

我有以下 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 文件保存到名为 XmlInputXMLDocument 中,然后我写了这个:

Dim handleXML = From h In xmlInput.Elements("Resp")

然后handleXML.Count返回1

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

然后我在每个元素的节点中循环并将值保存到它所属的类中。 但它返回了1

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

任何帮助将不胜感激。

【问题讨论】:

标签: xml vb.net class parsing


【解决方案1】:

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

没有。 1 是正确的输出,因为您的 XML 仅包含一个 &lt;Resp&gt; 元素。要获得&lt;Resp&gt; 的孩子,您应该再往下走一层:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-03-15
    • 1970-01-01
    • 2017-05-06
    • 1970-01-01
    • 1970-01-01
    • 2017-06-15
    • 1970-01-01
    相关资源
    最近更新 更多