我正在制作一个Android应用程序,我正在制作一个httprequest来获取XML文档,我的httpEntity不会返回null,我正在尝试使用documentbuilderfactory来解析文件并从xml获取我需要的数据。
我有:
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)
有没有人看过这个或知道我在做什么我找不到问题是什么,如果这个代码不够我可以提供更多,没有更多的工作正在完成,只是http请求。 我试图获得的“XML”文件看起来像这样
<ads>
<ad>
<id>6</id>
<minViews>10</minViews>
<duration>4</duration>
<actionUrl>URL</actionUrl>
<imageUrl>URL</imageUrl>
<impressionCount>0</impressionCount>
</ad>
<ads>
就是文件中的所有内容。我试图在两个位置获取URL。
答案 0 :(得分:2)
看起来该文档是不符合XML的HTML。未终止的<hr>
标签是一个死的赠品。 XML解析根本不适用于那些文档。
根据您对该文档的要求,您可能想要自己编写解析器,查找并调整现有解析器,或者使用WebView。
答案 1 :(得分:0)
你的xml缺少DTD,添加正确的doctype,你的解析就没问了。