YQL查询返回无效的XML

时间:2012-12-21 17:41:31

标签: xml wikipedia yql

我目前正在使用以下YQL语句来抓取网站的网页内容。其中{EncodedURI}是我正在抓取的页面。例如:http%3A%2F%2Fstackoverflow.com

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

对于大多数网址,这很好用。 XML是有效的,我的应用程序继续。但是在某些URL上返回了无效的XML。有趣的是,我发现一个导致此错误的网址是http://en.wikipedia.org/wiki/God

我从查询中获取了原始响应并将其放入XML验证程序并获得以下错误:

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

似乎响应结束时的XML变得混乱,但我无法找到确切的问题。

有什么想法吗?

更新

我在响应结束时更改了XML:

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

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

我可以很容易地让我的应用程序修复XML,因此它可以工作,但显然解决方案并不理想。有人知道如何避免这个问题吗?

1 个答案:

答案 0 :(得分:1)

我在firefox中看到错误。我可以解决的问题是请求JSON响应。只需将&format=json添加到REST调用即可。例如:Try this。至少你不必担心饲料甚至不解析。再次,这不是理想的,但应该有效。