Obter informaçoes de uma XML [Resolvido]

4 respostas
victormenegusso

Ola, quando executo este codigo

public class GeradorHTML {
	public GeradorHTML(){
	}
	public String GeraAcessos(SOAPMessage TabelaAcessos) throws SOAPException
	{
		System.out.print(TabelaAcessos.getSOAPBody().getFirstChild().getFirstChild().getFirstChild().getTextContent());
		
		return "";
	}
	
}

a minha resposta é :

<TabelaAcessos><Usuario><Nome>a</Nome><Acessos>69</Acessos></Usuario><Usuario><Nome>Anna</Nome><Acessos>0</Acessos></Usuario><Usuario><Nome>fernandoceller</Nome><Acessos>34</Acessos></Usuario><Usuario><Nome>jones</Nome><Acessos>5</Acessos></Usuario><Usuario><Nome>lucas</Nome><Acessos>11</Acessos></Usuario><Usuario><Nome>mairamct</Nome><Acessos>0</Acessos></Usuario><Usuario><Nome>marioceller</Nome><Acessos>618</Acessos></Usuario><Usuario><Nome>marlonalive</Nome><Acessos>668</Acessos></Usuario><Usuario><Nome>msm</Nome><Acessos>935</Acessos></Usuario><Usuario><Nome>paulo</Nome><Acessos>88</Acessos></Usuario><Usuario><Nome>pilade</Nome><Acessos>5</Acessos></Usuario><Usuario><Nome>rodrigo</Nome><Acessos>205</Acessos></Usuario><Usuario><Nome>sergio</Nome><Acessos>27</Acessos></Usuario><Usuario><Nome>silviomct</Nome><Acessos>5</Acessos></Usuario><Usuario><Nome>thiago</Nome><Acessos>212</Acessos></Usuario><Usuario><Nome>thyago</Nome><Acessos>47</Acessos></Usuario><Usuario><Nome>vilmar</Nome><Acessos>773</Acessos></Usuario></TabelaAcessos>

gostaria de pegar o valor dos campos… exemplo campo nome = a

4 Respostas

E
<TabelaAcessos>
  <Usuario>
    <Nome>a</Nome>
    <Acessos>69</Acessos>
  </Usuario>
  <Usuario>
    <Nome>Anna</Nome>
    <Acessos>0</Acessos>
  </Usuario>
  <Usuario>
    <Nome>fernandoceller</Nome>
    <Acessos>34</Acessos>
  </Usuario>

Para saber quantos acessos teve o usuário fernandoceller, use uma expressão XPath:
Acho que a expressão seria “/TabelaAcessos/Usuario/Nome=‘fernandoceller’/Acessos”. Procure sobre XPath e Java.

victormenegusso

Vou dar uma olhada, vlw

victormenegusso

posso estar errado mais entendi que o Xpath vai no jsp… eu precisaria ter os valores no Java ainda

victormenegusso

Solução

import java.io.File;
import java.io.IOException;
import java.io.StringReader;
import java.util.Iterator;
import java.util.List;

import javax.swing.text.Document;
import javax.xml.namespace.QName;
import javax.xml.soap.SOAPBody;
import javax.xml.soap.SOAPBodyElement;
import javax.xml.soap.SOAPException;
import javax.xml.soap.SOAPMessage;

import org.jdom.*; 
import org.jdom.input.*; 
import org.jdom.output.*;


public class GeradorHTML {
	public GeradorHTML(){
	}
	public String GeraAcessos(SOAPMessage TabelaAcessos) throws SOAPException
	{
		String XMLr;
		XMLr = TabelaAcessos.getSOAPBody().getFirstChild().getFirstChild().getFirstChild().getTextContent();
		SAXBuilder builder = new SAXBuilder();  
		  
		org.jdom.Document d = null;
		try {
			d =  builder.build(new StringReader(XMLr));
		} catch (JDOMException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}  
		//Recuperamos o elemento root  
		Element mural = (Element) 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.print("Nome do piao:"+ element.getChildText("Nome") + " ");  
		    System.out.println("Acessos:"+ element.getChildText("Acessos"));    
		}  
		return "";
	}
Criado 22 de julho de 2010
Ultima resposta 22 de jul. de 2010
Respostas 4
Participantes 2