2012-12-21 7 views
2

현재 사이트의 페이지 콘텐츠를 긁어 내기 위해 다음 YQL 문을 사용하고 있습니다. Where {EncodedURI}은 내가 긁어 모으고있는 페이지입니다. 예 : http % 3A % 2F % 2Fstackoverflow.comYQL 잘못된 XML을 반환하는 쿼리

SELECT * FROM html WHERE url="{EncodedURI}" 

대부분의 URL은 정상적으로 작동합니다. XML은 유효하고 내 응용 프로그램은 계속됩니다. 그러나 일부 URL에서는 잘못된 XML이 반환됩니다. 흥미롭게도이 오류의 원인이 된 URL은 http://en.wikipedia.org/wiki/God입니다. 나는에게 피난처를

error on line 2 at column 6:XML declaration allowed only at the start of the document 

그것은 응답의 끝 부분 XML을 보인다 뒤죽박죽지고 있지만 :

나는 쿼리에서 원시 응답을 촬영하고 다음과 같은 오류가있는 XML 유효성 검사기를 통해 넣어 얻을 것 정확한 문제를 파악할 수 없었습니다.

아이디어가 있으십니까?

업데이트 :로부터의 응답의 끝에서 XML을 변경 한

:

</body></results></query>>!-- Stotal: 288--> 
<!-- Lengine9.yql.ac4.yhouocolm--> 
< 

</body></results></query><!-- Stotal: 288--> 
<!-- Lengine9.yql.ac4.yhouocolm--> 

에 나는 비교적 쉽게 내 응용 프로그램을 개선 할 수 있습니다 XML이므로 작동하지만 분명히 그 솔루션은 이상적이지 않습니다. 아무도이 문제를 피하는 방법을 알고 있습니까?

+0

쿼리를 어떻게 실행합니까? – svick

+0

[yql console] (http://developer.yahoo.com/yql/console/#h=SELECT%20*%20FROM%20html%20WHERE%20url%3D%22http%3A//en.wikipedia.org/wiki/God % 22 % 20) 괜찮습니다.하지만 콘솔의 맨 아래에서 REST 쿼리를 복사하면 오류가 발생합니다. – mbaker3

+0

그렇게 할 때 어떤 오류도 발생하지 않습니다. – svick

답변

1

Firefox에서 오류가 표시됩니다. 해결 방법은 JSON 응답을 요청하는 것입니다. REST 호출에 &format=json을 추가하기 만하면됩니다. 예 : Try this. 적어도 파싱조차도 신경 쓰지 않아도됩니다. 다시 이것은 이상적은 아니지만 작동해야합니다.

+0

hmmm, 시도해 보겠습니다. 내 응용 프로그램은 JavaScript이고 jQuery를 사용하여 원하는 응답에서 정보를 검색하고 수집했지만이를 변경할 수 있습니다. 조금 더 노력! – mbaker3

+0

작품 ... 나는 또한 YQL 포럼에 게시했습니다. 바라건대 그들은 버그로 기록하기를 바랍니다. 제안 해 주셔서 감사합니다. – mbaker3

관련 문제