Estou usando o seguinte código:
/**
* Pega o valor de uma tag em XML se ela não estiver aninhada.
* @param xml String do XML de origem.
* @param tag A tag cujo valor deseja-se obter.
* @return O valor da tag.
*/
public static String getTagValue(String xml, String tag) {
String closeTag = new StringBuffer(tag).insert(1, "/").toString(); // fecha a tag adicionando "/"
int from = xml.indexOf(tag) + tag.length();
int to = xml.indexOf(closeTag);
return xml.substring(from, to);
}
Mas, como o comentário diz, ele só funciona se não houver aninhamento. Exemplo:
String xml = FileUtils.readFileToString(new File("arquivo.xml"));
String tag = "<exemplo>"
String value = getTagValue(xml, tag);
System.out.println(value); // imprime tudo o que estiver entre <exemplo> e </exemplo>
De forma simples e rápida, como posso fazer a mesma coisa utilizando uma API própria para XML?