Простой способ получить значение узла в этом примере

#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».