从HttpWebRequest直接将XML转换为数据集。 (VB.net)

时间:2016-07-07 08:26:07

标签: xml vb.net stream dataset

我有一个更新服务器,它有一个XML来告诉应用程序的updater函数所需的详细信息/文件等。此时,我必须抓取xml,保存它,然后将保存的xml加载到数据集中如下:

 Private Function GetXML() as XMLDocument  
        Dim request As System.Net.HttpWebRequest = System.Net.HttpWebRequest.Create("http://somewebsite.com/current.xml")
        Try
            Dim response As System.Net.HttpWebResponse = request.GetResponse()

            If response.StatusCode = System.Net.HttpStatusCode.OK Then
                Dim stream As System.IO.Stream = response.GetResponseStream()
                Dim reader As New System.IO.StreamReader(stream)
                Dim contents As String = reader.ReadToEnd()
                Dim document As New System.Xml.XmlDocument()
                document.LoadXml(contents)
                Return document
              Catch ex As Exception
           End Try
End Function

Private Sub DoUpdate()

    Dim ServerXML as XMLDocument = GetServerXML()
    ServerXML.Save("Server.xml")

    Dim ServerDataSet as new DataSet
    ServerDataSet.ReadXml("Server.xml")
End Sub

必须有一个更快的方法,而不保存本地文件,但我显然卡住了,并采取了无穷无尽的互联网知识。

一些简单的事情:

Dim stream As System.IO.Stream = response.GetResponseStream()
Dim reader As New System.IO.StreamReader(stream)
ServerDataset.ReadXML(reader)

去互联网做你的事! :)谢谢大家。

1 个答案:

答案 0 :(得分:0)

事实证明:

bool arrCheck(char n[],char pos1,char pos2,char pos3,int size)
{
    int first = 0,second = 0, third = 0; 
    for (int i=0;i<size;i++) {
        if (n[i]==pos1) {
         first = 1;
        } else if (n[i]==pos2) {
          second = 1;
        } else if (n[i]==pos3) {
          third = 1;
        }
   }

   if( first+ second + third == 3) 
       return true;
   else
      return false;
}

事实上;工作。我有一个XML格式化问题,将其保存到文件然后重新打开它会起作用,但是通过读取器加载它不会。