0

我正在尝试将 xml(来自 web 服务)加载到数据集中。我的问题是 xml 并不总是具有相同的结构。

它看起来像这样

<Articles> 
   <Article>
      <id>7156</id>
      <name>FirstArticle</name>
      <pic>zaea.jpg </pic>
   </Article>
   <Article>
      <id>7157</id>
      <name>Second</name>
   </Article>
<Articles>

如您所见,第一个节点有一个“图片”,而第二个节点没有。我的问题是它只会将第一个节点加载到数据集中,因为“它具有所有属性”。如果一个节点缺少一个属性,它不会将其加载到数据集中......

这就是我所做的

Dim dataSet As New DataSet()
Dim httpResponse As String
httpResponse = HttpRequest.WRequest("WEBSERVICE URL")
Dim xmlSR As System.IO.StringReader = New System.IO.StringReader(httpResponse)
dataSet.ReadXml(xmlSR)

我已经尝试在加载数据之前添加数据集的列,但它并没有改变任何东西......

我怎样才能做到这一点?谢谢

4

2 回答 2

0

在我看来,XML 结构是无效的。属性不应该在没有值的时候回避,应该考虑写在</pic>甚至<pic></pic>是在第二条元素中

于 2012-07-25T14:43:41.753 回答
0

尝试

dataSet.ReadXml(xmlSR,XmlReadMode.IgnoreSchema)

如果有这样的模式,它就必须使用<xsl:choose>条件。

于 2012-07-25T14:49:00.163 回答