在VB.NET中将下载的查询xml字符串转换为可用的xml文档

时间:2009-09-22 03:14:26

标签: xml vb.net

我想转换图片查询,可在此处找到

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

在vb2005.net中的xmldocument我可以随后巡航并抓取数据,使用webclient的当前代码并没有给我一个好的xml文档。我有什么想法可以解决这个问题吗?

请注意,这是在一个类中,所以变量已填入

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 :(得分:0)

我假设您说LoadXml在尝试处理DownloadString的结果时会抛出异常。

之前我遇到过这个问题,由于某些原因,我还没有确定字符串开头的两个字符似乎弄乱了XML文档。一种解决方案是剥离两个字符。我猜它们与UTF文档的字节顺序标记有关。

另一种选择是使用基于替代流的语法:

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

或者您可以使用HttpWebRequest类。

另请参阅此问题:Strip Byte Order Mark from string in C#