Java 如何将inputstream解析为文档生成器?
我正在制作一个android应用程序,我正在制作一个httprequest来获取一个XML文档,我的httpEntity不返回null,我正在尝试使用documentbuilderfactory来解析文件并从XML中获取我需要的数据 我有:Java 如何将inputstream解析为文档生成器?,java,android,xmlhttprequest,Java,Android,Xmlhttprequest,我正在制作一个android应用程序,我正在制作一个httprequest来获取一个XML文档,我的httpEntity不返回null,我正在尝试使用documentbuilderfactory来解析文件并从XML中获取我需要的数据 我有: DefaultHttpClient httpclient = new DefaultHttpClient(); HttpGet httpPost = new HttpGet(URL); httpPost.ad
DefaultHttpClient httpclient = new DefaultHttpClient();
HttpGet httpPost = new HttpGet(URL);
httpPost.addHeader("Authorization", getAuthHeader());
HttpResponse response = httpclient.execute(httpPost);
HttpEntity entity = response.getEntity();
InputStream is = entity.getContent();
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(is);
此时,我得到一个错误异常,如下所示
org.xml.sax.SAXParseException: expected: /hr read: body (position:END_TAG @10:8 in java.io.InputStreamReader@40564d70)
org.xml.sax.SAXParseException:expected:/hr read:body(在java.io中位置:END_TAG@10:8)。InputStreamReader@40564d70)
是否有人看到了这一点或知道我在做什么,我无法找到问题所在,如果这还不够,我可以提供更多的代码,没有更多的工作正在进行,只有http请求。
我试图获取的“XML”文件如下所示
<ads>
<ad>
<id>6</id>
<minViews>10</minViews>
<duration>4</duration>
<actionUrl>URL</actionUrl>
<imageUrl>URL</imageUrl>
<impressionCount>0</impressionCount>
</ad>
<ads>
6.
10
4.
统一资源定位地址
统一资源定位地址
0
这就是文件中的全部内容。我正在尝试在两个位置获取URL。看起来文档是一个不符合XML的HTML。未终止的
标签是一个死赠品。XML解析根本不适用于这些文档
根据您希望从该文档中获得什么,您可能需要滚动您自己的解析器,查找并修改现有的解析器,或者使用WebView。如果xml中缺少DTD,请添加正确的doctype,您的解析就可以了。当您说解析文件时,您想从中得到什么,字符串?一个节点?看起来提取的XML语法不正确。我建议将响应内容作为
字符串
读取并打印出来,以查看实际得到的内容。。。我猜这不是你认为你应该得到的。