2016-02-29 40 views
1

我寫的代碼如下如何將Web服務輸出(XMLNode)轉換爲VB.NET中的數據集?

  Dim xNode As XmlNode 
      xNode = proclaimService.ProClaim_Get_Exclusions(sSQL) 
      XmlData = New StringReader(xNode.OuterXml) 
      Dim xmlString As String 
      xmlString = xNode.OuterXml 

在這裏,在的xmlString我得到以下

<NewDataSet xmlns=""> 
    <Table> 
    <company /> 
    <Policy>10163067</Policy> 
    <Rec_ty>Ex</Rec_ty> 
    <Seq_no xml:space="preserve"></Seq_no> 
    <Dt_last_updt>Dec 3 2003</Dt_last_updt> 
    <Coverage_no>All</Coverage_no> 
    <Client_no>65083406</Client_no> 
    <Document_name>Exclusion</Document_name> 
    <Print_ind /> 
    <Retention_ind /> 
    <Exclusion_type>Exclu</Exclusion_type> 
    <Comment01>blessure,maladie ou trouble d'un ou des deux genoux, y compr</Comment01> 
    <comment02>is les complications, traitements ou chirurgies connexes.</comment02> 
    <comment03 xml:space="preserve"></comment03> 
    <comment04 xml:space="preserve"></comment04> 
    <comment05 xml:space="preserve"></comment05> 
    <comment06 xml:space="preserve"></comment06> 
    <comment07 xml:space="preserve"></comment07> 
    <comment08 xml:space="preserve"></comment08> 
    <comment09 xml:space="preserve"></comment09> 
    <comment10 xml:space="preserve"></comment10> 
    </Table> 
    </NewDataSet> 

我使用下面的代碼來創建數據集

  XmlData = New StringReader(xmlString) 
      reader = New XmlTextReader(XmlData) 
      xmlDs.ReadXml(reader) 
      Dset = xmlDs 

但在XmlData中,我沒有得到任何東西..... 如何將其轉換爲使用VB.NET的數據集?

+0

你從文件中讀取? – dbasnett

+0

@dbasnett no ...我正在從webservice得到xml字符串,這是返回XmlNode – abhayk

+0

更新我的答案。注意返回的表的數量。我測試的網站返回了14 ... – dbasnett

回答

1

沒有更多的信息,很難知道如何回答。這是一個與文件一起工作的例子。請注意評論。

Dim xmlStrm As New IO.StreamReader(pathToFile) 
    'xmlStrm could be a .GetResponseStream from a web response 
    'Dim xmlStrm As IO.Stream = someWebResp.GetResponseStream 

    Dim Dset As New DataSet 
    Using reader As Xml.XmlReader = Xml.XmlReader.Create(xmlStrm) 
     Dset.ReadXml(reader) 
    End Using 
    xmlStrm.Close() 
    xmlStrm.Dispose() 

    Debug.WriteLine(Dset.Tables.Count) 

    For Each rw As DataRow In Dset.Tables(0).Rows 
     'as example show first two columns 
     Debug.WriteLine(rw(0).ToString & " " & rw(1).ToString) 
    Next 

編輯:從網站返回的XML

Dim someReq As Net.WebRequest = Net.WebRequest.Create(someURL) 

    Dim someResp As Net.WebResponse = someReq.GetResponse() 
    Dim someStrm As IO.Stream = someResp.GetResponseStream() 

    Dim someDoc As New Xml.XmlDocument 
    someDoc.Load(someStrm) 

    Dim xe As XElement = XElement.Parse(someDoc.InnerXml) 

    Dim Dset As New DataSet 
    Using reader As Xml.XmlReader = xe.CreateReader 
     Dset.ReadXml(reader) 
    End Using 

    Debug.WriteLine(Dset.Tables.Count)