У меня возникла небольшая проблема с анализом строки xml с именем responseText в android. XML является полностью действительным и имеет следующую структуру:Синтаксическая разметка xml android
<plan>
<entry>
<name>john</name>
<address>uk</address>
</entry>
<entry>
<name>joe</name>
<address>usa</address>
</entry>
</plan>
код, я использую для разбора строки следующим образом:
try {
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
InputSource is = new InputSource();
is.setCharacterStream(new StringReader(responseText));
Document doc = db.parse(is);
NodeList nodes = doc.getElementsByTagName("entry");
for (int i = 0; i < nodes.getLength(); i++) {
Element element = (Element) nodes.item(i);
NodeList name = ((Document) element)
.getElementsByTagName("name");
Element line = (Element) name.item(0);
Toast.makeText(Containers.this,
getCharacterDataFromElement(line), Toast.LENGTH_SHORT)
.show();
NodeList title = ((Document) element)
.getElementsByTagName("address");
line = (Element) title.item(0);
Toast.makeText(Containers.this,
getCharacterDataFromElement(line), Toast.LENGTH_SHORT)
.show();
}
} catch (Exception e) {
e.printStackTrace();
}
}
public static String getCharacterDataFromElement(Element e) {
Node child = ((Node) e).getFirstChild();
if (child instanceof CharacterData) {
CharacterData cd = (CharacterData) child;
return cd.getData();
}
return "?";
}
Я просто с помощью простых тостов, чтобы напечатать данные XML для экрана. Тем не менее, я получаю IOexception, когда я вхожу в цикл for. Любая идея, что не так?
Пожалуйста, разместите полный текст исключения IOException. –
Как получить полный текст? На самом деле это не может быть Ioexception - я знаю, однако, что он входит в исключение, я просто смотрел на предмет logcat, и появление io может быть связано с ошибкой на моем телефоне. Где печать в стеке? Или как я могу включить его? –
, пожалуйста, добавьте ваш stacktrace – vsm