如何解析Android中的xml类型HTTPResponse

时间:2011-03-28 09:19:50

标签: android xml httpresponse xml-parsing

我有一个Android应用程序,我使用POST方法来获取响应。这是我的代码:

..........................................
HttpResponse httpResponse = httpclient.execute(httppost);
HttpEntity resEntity =  httpResponse.getEntity();

这工作正常,我得到xml格式的响应,但我想解析该xml文件并获取节点值。我试过这个:

DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(new InputSource());
doc.getDocumentElement().normalize();

但我不知道应该给new InputSource()什么,因为我必须使用XML类型HTTPResponse而不是网址。

谢谢!!!

5 个答案:

答案 0 :(得分:1)

好的,谢谢大家的回复。我刚刚找到了解决问题的方法。 http://www.rgagnon.com/javadetails/java-0573.html

答案 1 :(得分:1)

尝试

InputStream is = resEntity .getContent()
Document doc = db.parse(is);

答案 2 :(得分:0)

您可以使用任何XML解析器(如SAX)来解析您的XML数据

答案 3 :(得分:0)

如果你的xml字符串格式的回复是

DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
InputSource is=new InputSource();
is.setCharacterStream(new StringReader(xmlString(ur response)))
Document doc = db.parse(is);

答案 4 :(得分:0)

            getsyncFlag(String feedData) {

            SAXParserFactory spf = SAXParserFactory.newInstance();
            SAXParser sp = spf.newSAXParser();
            XMLReader xr = sp.getXMLReader();
            xr.setContentHandler(this);
            InputSource is=new InputSource();
            is.setCharacterStream(new StringReader((feedData)));
            xr.parse(is);
}