【发布时间】:2015-01-10 22:51:56
【问题描述】:
更新:
我想将返回的 XML 动态转储到数据集中,而不必写出列名。返回的数据格式非常简单,列名,数据,然后是列名的关闭。像这样:
<runsql>
<cst_id>0005675667</cst_id>
<ind_last_name>Abe</ind_last_name>
<ind_first_name>Adam</ind_first_name>
<cst_ixo_title_dn/>
<cst_org_name_dn>Acme University</cst_org_name_dn>
<cst_eml_address_dn>Adam@acmeu.edu</cst_eml_address_dn>
</runsql>
我一直在使用标准格式来访问我们的网络服务并返回特定字段。我需要修改它以将整个 XML 提要转储到 VB.NET 中的内部数据集中。这个 Web 服务是在我的 Web References 部分中预定义的。我在下面的代码中取得了成功,但在经过大量谷歌搜索和测试之后,无法找到将所有列动态加载到数据集中的方法。我可以使用下面的这种格式加载到数据集中获得帮助吗?
Dim proxy As New myWS.netFORUMXMLWebServices
Dim strInSQL As String
Dim strOutXML2 As XmlDocument
strOutXML2 = New XmlDocument
Dim oNode2 As XmlNode
Dim oResultsNode2 As XmlNode
strInSQL = "SELECT cst_eml_address_dn FROM WebServicesTable"
strOutXML2.LoadXml("<myResults></myResults>")
oResultsNode2 = proxy.runsql(strInSQL)
Dim xmlNewDoc As XmlDocument
xmlNewDoc = New XmlDocument
xmlNewDoc.LoadXml(oResultsNode2.OuterXml)
strOutXML2.DocumentElement.AppendChild(strOutXML2.ImportNode(xmlNewDoc.DocumentElement, True))
Dim oResultsNodeList2 As XmlNodeList
oResultsNodeList2 = xmlNewDoc.SelectNodes("//runsql")
For Each oNode2 In oResultsNodeList2
returnedEmail = oNode2.SelectSingleNode("cst_eml_address_dn").InnerText
Next
如果您想知道“runsql”是供应商提供给我们的 Web 服务末尾的参数。 (webservices.asmx?op=runsql)
【问题讨论】:
-
我们能看到你正在搞乱的结构吗...看起来你正在切碎并重新打包来自
proxy.runsql的返回,它可以直接导入到 DS 中。 -
@Plutonix,当然。我编辑了帖子。直接导入 DS 正是我想要的。上面的代码显示了我一直在使用的用于检索值的方法。我不知道如何编辑我的工作代码以将其直接转储到 DS 中而无需指定列名等。
-
@Plutonix 对不起,第一次做赏金。我认为通过将您的回复标记为已回答,您将自动获得赏金。
-
谢谢!我确实看到这是您的第一次,这就是为什么我在为时已晚之前提到它的原因。
标签: asp.net xml vb.net web-services