我正在尝试将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
答案 0 :(得分:0)
在我看来,XML结构无效。没有价值时不应该避免使用属性。您应该考虑在第二篇文章元素中编写</pic>
甚至<pic></pic>
答案 1 :(得分:0)
尝试
dataSet.ReadXml(xmlSR,XmlReadMode.IgnoreSchema)
如果有这样的架构,则必须使用<xsl:choose>
条件。