我调用了一个成功返回 XML响应的SOAP / XML类型Web服务. 到目前为止,我已设法获取返回的对象,将其转换为XmlNode对象..并按预期在那里找到了实际数据.都好. 但是,现在,我想将我的数据绑定
到目前为止,我已设法获取返回的对象,将其转换为XmlNode对象..并按预期在那里找到了实际数据.都好.
但是,现在,我想将我的数据绑定到Windows窗体中的DataGridView.
我在这里看到一个很好的例子C# DataGridView binding to subset of XML使用XDocument和LINQ为网格提供一个看起来对我来说非常好的数据源.
我遇到的问题是我不知道如何根据我对Web服务的调用返回的对象创建一个XDocument.我怎样才能做到这一点 ?
这就是我从webservice中捕获返回数据的方法..哪个有效..
' call the webservice ' Dim rawResults As Object = lw.runQuery(parameter1,parameter2) Dim testresult As XmlNode = DirectCast(rawResults, XmlNode) Dim docXml As New XmlDocument docXml.AppendChild(docXml.ImportNode(testresult, True)). .etc
这是webservice返回的XML ..(每个“runQueryResult”将成为DataGridView中的一行)
<?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <soap:Body> <runQueryResponse xmlns="http://xxx.ddd.com/"> <runQueryResult> <runQueryResponse xmlns=""> <runQueryRecord> <catalogid>513</catalogid> <name>Vacuum tube </name> <this_month>0</this_month> <month_past1>1</month_past1> <month_past2>0</month_past2> <month_past3>0</month_past3> <month_past4>0</month_past4> <month_past5>0</month_past5> <month_past6>0</month_past6> </runQueryRecord> <runQueryRecord> <catalogid>5311</catalogid> <name>Adapter expansion</name> <this_month>0</this_month> <month_past1>1</month_past1> <month_past2>0</month_past2> <month_past3>0</month_past3> <month_past4>0</month_past4> <month_past5>0</month_past5> <month_past6>0</month_past6> ... etc.您可以直接从XmlNode创建XDocument,因此您不必创建XmlDocument实例:
Dim xDoc As XDocument = XDocument.Load(New XmlNodeReader(testresults))