将Xml加载到数据集中

时间:2012-07-25 14:38:52

标签: .net xml vb.net dataset readxml

我正在尝试将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>

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

这就是我做的事情

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)

我已经尝试在加载数据之前添加数据集的列,但它不会改变任何内容......

我该怎么做? Thanx

2 个答案:

答案 0 :(得分:0)

在我看来,XML结构无效。没有价值时不应该避免使用属性。您应该考虑在第二篇文章元素中编写</pic>甚至<pic></pic>

答案 1 :(得分:0)

尝试

dataSet.ReadXml(xmlSR,XmlReadMode.IgnoreSchema)

如果有这样的架构,则必须使用<xsl:choose>条件。