微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

接受clojure.xml / parse调用的标头

使用URI调用函数clojure.xml / parse时,Clojure会执行HTTP GET请求来获取数据.但是,HTTP请求包含以下接受标头:

text/html,image/gif,image/jpeg,*; q=.2,*/*; q=.2

这不应该是application / xml吗?

解决方法

使用String参数(URI)调用clojure.xml / parse与此java代码类似:

SAXParserFactory.newInstance().newSAXParser().parse("<your_uri>",<instance of XMLHandler provided by Clojure>);

Clojure不执行HTTP GET请求.它只使用SAX解析器作为认解析器. Sax解析器在内部创建XMLInputSource的实例,并将其一直传递给XMLEntityManager.类XMLEntityManager完成与打开连接和获取xml(或更像html)文档相关的所有工作:

URL location = new URL(expandedSystemId); 
URLConnection connect = location.openConnection();
... skip ...
stream = connect.getInputStream();

如果XmlInputSource是HTTPInputSource的实例,则XMLEntityManager设置HTTP请求属性.但是,XMLInputSource没有类似的功能(这是SAXParser的情况).

我想你可以帮助你将SAX解析器更改为其他一些实现.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。