使用URI调用函数clojure.xml / parse时,Clojure会执行HTTP GET请求来获取数据.但是,HTTP请求包含以下接受标头: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2 这不应该是application / xml吗? 使用String参
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解析器更改为其他一些实现.