dessa forma eu tambem pego o valor iterando?[/quote]
Pega sim, basta primeiro vc pegar o elemento mensagemGeral, depois é so fazer pegar o iterator dos elementos dele, e usar em um for ou onde achar conviniente…
Conforme o XML que vc enviou, uma das formas de solicionar é assim:
public static void main(String ... args) throws Throwable {
URL url = new URL("file:///C:/xml.xml");
SAXReader reader = new SAXReader();
final Document document = reader.read(url);
for (Element e : getIterable(document,"mensagemGeral")) {
System.out.println("nome = "+ e.elementText("nome"));
System.out.println("contato = "+ e.elementText("nome"));
}
}
private static Iterable<Element> getIterable(final Document document, final String element) {
return new Iterable<Element>() {
@Override @SuppressWarnings("unchecked")
public Iterator<Element> iterator() {
return document.getRootElement().element(element).elementIterator();
}
};
}
Note que ele busca o elemnto “mensagemGeral”, e faz um iterator a partir dele… e coloca dentro de um Iterable, pra vc usar facilmente em um for
veja que quebrei em 2 métodos… criei um método apenas para montar o Iterable…
os parametros do método getIterable, são:
“document” que é o documento ao qual deve-se buscar os elementos
“element” que é uma String com o nome do sub elemento que se deseja criar o Iterable, que no seu caso é “mensagemGeral”
EDIT: apenas para facilitar, os imports usados nesse exemplo são
ola, desculpa se estou postando na pagina errada.
Mais estou com uma duvida e sou novato em java. Encontrei um codigo para ler um xml de retorno de um outro aplicativo.
Quando faço a leitura do xml ele me retorna resultado null
segue o codigo:
[code]
File f = new File(“C:/mural.xml”);
//Criamos uma classe SAXBuilder que vai processar o XML4
org.jdom.input.SAXBuilder sb = new org.jdom.input.SAXBuilder();
//Este documento agora possui toda a estrutura do arquivo.
org.jdom.Document d = null;
try {
d = sb.build(f);
} catch (JDOMException ex) {
Logger.getLogger(Assistec.class.getName()).log(Level.SEVERE, null, ex);
} catch (IOException ex) {
Logger.getLogger(Assistec.class.getName()).log(Level.SEVERE, null, ex);
}
//Recuperamos o elemento root
org.jdom.Element mural = d.getRootElement();
//Recuperamos os elementos filhos (children)
List elements = mural.getChildren();
Iterator i = elements.iterator();
//Iteramos com os elementos filhos, e filhos do dos filhos
while (i.hasNext()) {
Element element = (Element) i.next();
System.out.println(“Códido:”+ element.getChildText(“cStat”));
}[/code]
segue o xml
<?xml version="1.0" encoding="utf-8"?>
<retAltConfUniNFe>
<cStat>1</cStat>
<xmotivo>Configuracao do UniNFe alterada com sucesso</xmotivo>
</retAltConfUniNFe>