Pegar valor de uma tag no XML

3 respostas
H

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?

3 Respostas

pedruhenrik

eu utilizaria o jdom ou xstream para isso.

att,

romarcio

Fiz 3 tutoriais sobre XML, da uma olhada neles:



pedruhenrik

Fiz 3 tutoriais sobre XML, da uma olhada neles:
http://mballem.wordpress.com/2011/04/22/manipuland…-%e2%80%93-parte-i-api-nativa/
http://mballem.wordpress.com/2011/04/29/manipuland...o-xml-–-parte-ii-jdom/
http://mballem.wordpress.com/2011/05/12/manipuland...l-–-parte-iii-xstream/

Favoritado!

+1

Curtido!

att,

Criado 18 de agosto de 2011
Ultima resposta 18 de ago. de 2011
Respostas 3
Participantes 3