#android #xml
#Android #xml
Вопрос:
У меня есть образец XML (платформа Android), и я хотел бы знать самый простой и эффективный подход для получения значения узла узла «e». Пожалуйста, помогите.
<a>
<b>
<c>
<e>data</e>
</c>
</b>
<b>
</b>
</a>
Ответ №1:
Используйте XPath.
Смотрите — http://developer.android.com/reference/javax/xml/xpath/package-summary.html
Выражение XPath для захвата правильного элемента будет:
/a/b/c/e
Вы могли бы объединить результирующий узел в String
, чтобы получить текстовое значение.
Ответ №2:
Я думаю, следующий код поможет вам извлечь данные узла «e».
NodeList nodes = doc.getElementsByTagName("b");
for (int i = 0; i < nodes.getLength(); i ) {
Element element = (Element) nodes.item(i);
NodeList nodesimg = element.getElementsByTagName("e");
for (int j = 0; j < nodesimg.getLength(); j ) {
Element line = (Element) nodesimg.item(j);
String value=getCharacterDataFromElement(line);
}
}
public static String getCharacterDataFromElement(Element e) {
Node child = e.getFirstChild();
if (child instanceof CharacterData) {
CharacterData cd = (CharacterData) child;
return cd.getData();
}
return "?";
}
Ответ №3:
Реализуйте анализатор извлечения, пример приведен здесь:http://icodesnip.com/snippet/java/android-pull-parser-sample
Итак, в вашем случае вы должны записать условие внутри начального тега для «e».