Исключение XML при использовании xmltextreader для чтения webresponse, а затем xmlDocument.load (xmlTextReaderobj) - PullRequest
0 голосов
/ 05 мая 2011

В настоящее время у меня возникает проблема, когда я получаю ответ от веб-службы, после прочтения ответа в потоке ответов я хочу загрузить этот поток ответов с помощью xmltextreader. но когда вызывается Load (xmlTextreaderObj), возникает исключение, показывающее, что «корневой элемент отсутствует». Вот код, который я использую. Пожалуйста, помогите

Dim wResp As HttpWebResponse = CType(wReq.GetResponse(), HttpWebResponse)
Dim respStream As StreamReader = New StreamReader(wResp.GetResponseStream())

Dim Resp As String = respStream.ReadToEnd()

Dim xmlReader As XmlTextReader = New XmlTextReader(respStream)
''Dim Reader As XmlReader = XmlReader.Create(wResp.GetResponseStream())

If xmlReader.AttributeCount >= 0 Then
    Try
        Dim xmlRateQuote As XmlDocument = New XmlDocument()

        xmlRateQuote.Load(xmlReader)


        'The entire XML Response String
        Dim response As String = xmlRateQuote.InnerXml

        wReq.Abort()
        wResp.Close()
    Catch ex As Exception


    End Try
End If

1 Ответ

0 голосов
/ 05 мая 2011

Если ваш реальный код выглядит так, как здесь написано, вы, вероятно, получите ошибку, потому что вы уже прочитали поток хотя бы один раз в первой строке.

Dim Resp As String = respStream.ReadToEnd()

Поток только односторонний, поэтому при создании xmlreader он начнет читать с того места, где находится поток, и больше не будет указывать на корневой элемент (но в конце потока)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...