2009-09-22 2 views
0

에 사용 가능한 XML 문서로 다운로드 쿼리 XML 문자열을 변환 해,이 XMLDocument로 vb2005.net에서 여기가 나는 이미지 쿼리를 변환하고자하는 VB.NET

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

발견하는 나는 크루즈 후 수 주위와 데이터를 잡고, 현재 코드를 사용하여 웹 클라이언트를 사용하지 않는 좋은 XML 문서를 제공하지 않습니다. 어떻게하면이 문제를 해결할 수 있을까요?

pPlease 변수가

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 

답변

0

나는 당신이 DownloadString의 결과를 처리 할 때 LoadXml가 예외를 던지는 것을 말하는 것으로 추정하고 채워 때문에,이 클래스 내에 있습니다.

나는 XML 문서를 엉망으로 만드는 문자열의 시작 부분에 두 개의 문자가있는 것으로 판단해야만하기 때문에 이러한 문제가 발생했다. 한 가지 해결책은 두 문자를 제거하는 것입니다. 나는 그들이 UTF 문서의 Byte Order Marks와 관련이 있다고 생각한다.

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

아니면 그냥 HttpWebRequest 클래스를 사용할 수 있습니다

다른 옵션은 대체 스트림 기반 구문을 사용하는 것입니다. 그냥 디버거 정보를 오독 모두 함께 잘 작동하고, Strip Byte Order Mark from string in C#

+0

내가 내 정보를 오독했다 :

또한이 질문을 참조 – Jim

관련 문제