Как разобрать XML-тип HTTPResponse в Android - PullRequest
3 голосов
/ 28 марта 2011

У меня есть приложение для 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(), потому что я должен использовать HTTP-ответ HTTPResponse, а не URL.

Спасибо !!!

Ответы [ 5 ]

1 голос
/ 28 марта 2011

попробуй

InputStream is = resEntity .getContent()
Document doc = db.parse(is);
1 голос
/ 28 марта 2011

хорошо, спасибо всем за ответы. Я только что нашел способ преодолеть мою проблему. http://www.rgagnon.com/javadetails/java-0573.html

0 голосов
/ 03 июля 2012
            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);
}
0 голосов
/ 28 марта 2011

, если ваш ответ в формате 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);
0 голосов
/ 28 марта 2011

Вы можете использовать любой синтаксический анализатор XML, например SAX, для анализа данных XML

...