Преобразование загруженной XML-строки запроса в пригодный для использования XML-документ в VB.NET - PullRequest
0 голосов
/ 22 сентября 2009

Я хотел бы преобразовать запрос изображения, найденный здесь

http://search.yahooapis.com/ImageSearchService/V1/imageSearch?appid=xxxxxxx&query=cars

В vb2005.net к xmldocument, который я затем могу просматривать и собирать данные, текущий код с использованием веб-клиента не дает мне хороший документ XML для использования. Любые идеи, как я могу это исправить?

pПожалуйста, обратите внимание, что это внутри класса, поэтому переменные были заполнены

Using xkl As New Net.WebClient
    xkl.QueryString = Me.QueryString
    xkl.QueryString.Add("start", Me.ImageOffset)
    xkl.QueryString.Add("appid", searchID)
    If Me.AdultOK Then
        xkl.QueryString.Add("adult_ok", 1)
    Else
        xkl.QueryString.Add("adult_ok", 0)
    End If

    Try
        Dim xbk As New Xml.XmlDocument

        xbk.LoadXml(xkl.DownloadString("http://search.yahooapis.com/ImageSearchService/V1/imageSearch?appid=xxxxxxx&query=cars"))
        xbk.Normalize()

        If xbk.FirstChild IsNot Nothing Then
            Dim ck = xbk.FirstChild.GetEnumerator
            While ck.movenext

            End While
        End If

    Catch ex As Exception

    End Try
End Using

1 Ответ

0 голосов
/ 22 сентября 2009

Я предполагаю, что вы говорите, что LoadXml вызывает исключение при попытке обработать результаты DownloadString.

У меня была эта проблема раньше, и по какой-то причине мне еще предстоит определить, что в начале строки, кажется, есть два символа, которые портят XML-документ. Одно из решений - просто снять два символа. Я предполагаю, что они как-то связаны с метками порядка байтов документа UTF.

Другой вариант - использовать альтернативный синтаксис на основе потока:

xbk.Load(xkl.OpenRead("..."));

Или вы можете просто использовать класс HttpWebRequest.

Также см. Этот вопрос: Разметка порядка следования байтов из строки в C #

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