Lendo um XML atravez de um parser

7 respostas
S

Galera to com um problema, como eu coloca essa parte do codigo em inputStream, ta comentado alguem pode tirar essa duvida.

public class LeitorXMLTeste {   
  
    /**  
     * @param args  
     */   
    public static void main(String[] args) {   
        SAXParser parser=null;   
        try {   
            parser= SAXParserFactory.newInstance().newSAXParser();   
        } catch (ParserConfigurationException e) {   
            e.printStackTrace();   
        } catch (SAXException e) {   
            e.printStackTrace();   
        }   
  
        File file=new File("D:\\workspace\\Teste\\src\\produto.xml");   
        if(parser!=null){   
            InputSource input=new InputSource(file.getAbsolutePath());//aqui vc pode passar o seu inputStream como parametro   
            try {   
                LeitorXML leitor= new LeitorXML();   
                parser.parse(input,new JColtraneXMLHandler(leitor));   
                Produto p=leitor.getProduto();   
                System.out.println("nome: "+p.getNome());   
                System.out.println("preço: "+p.getPreco());   
                System.out.println("descricao: "+p.getDescricao());   
            } catch (SAXException e) {   
                e.printStackTrace();   
            } catch (IOException e) {   
                e.printStackTrace();   
            }   
        }   
  
    }   
  
}

7 Respostas

S

Galera eu queria modificar esse codigo de enver dele ler o xml, de um arquivo que esta na minha maquina ele possa ler o xml de vem de uma url ? alquem poderia me ajudar. ?

S

alquem pode ajudar =[

nextuser

cara se o xml estiver no mesmo path que sua classe vc pode fazer o seguinte:

InputSource input=new InputSource(LeitorXMLTeste.class.getResourceAsStream("produto.xml"));
S

Bom ela esta numa url, tenho que passar essa url como parametro em vez do arquivo em si.

nextuser

vc pode usar o httpclient da apache fazer down do arquivo e fazer um bufferreader ou aldo similar.

nextuser

código para pegar um arquivo via http e fazer o input dele...
vc pode jogar o InputStreamReader direto no teu InputSource sem problemas.

private InputStreamReader getList(String url) {
		HttpClient client = new HttpClient();

		HttpMethod method = new GetMethod(url);

		int statusCode = 0;

		try {
			statusCode = client.executeMethod(method);

			if (statusCode == 200) {
				return new InputStreamReader(method.getResponseBodyAsStream());
			} else {
				System.err.println("URL: " + url);
				System.err.println("statusCode: " + statusCode);
			}
		} catch (Exception e) {
			System.err.println("Erro: " + e.getMessage());
			System.err.println("URL: " + url);
			System.err.println("statusCode: " + statusCode);
		}
		method.releaseConnection();
		return null;
	}
luiz.souza.two

POW EU REESCREVI ESSE CODIGO DA MESMA FORMA PARA VER SE CONSEGUIA TER ALGU EM MÃO
MAS DEU UNS ERROS…
CLARO MESMO DEPOIS DE IMPORTANDO A BIBLIOTECAS DESEJADAS…
ALGUEM PODE ME AJUDAR NESSA PARTE

view plaincopy to clipboardprint?

  1. public class LeitorXMLTeste {
  2. /**
    
  3. * @param args
    
  4. */
    
  5. public static void main(String[] args) {
    
  6. SAXParser parser=null;
    
  7. try {
    
  8. parser= SAXParserFactory.newInstance().newSAXParser();
    
  9. } catch (ParserConfigurationException e) {
    
  10. e.printStackTrace();
    
  11. } catch (SAXException e) {
    
  12. e.printStackTrace();
    
  13. }
    
  14. File file=new File("D:\\workspace\\Teste\\src\\produto.xml");
    
  15. if(parser!=null){
    
  16. InputSource input=new InputSource(file.getAbsolutePath());//aqui vc pode passar o seu inputStream como parametro
    
  17. try {
    
  18. LeitorXML leitor= new LeitorXML();
    
  19. parser.parse(input,new JColtraneXMLHandler(leitor));
    
  20. Produto p=leitor.getProduto();
    
  21. System.out.println("nome: "+p.getNome());
    
  22. System.out.println("preço: "+p.getPreco());
    
  23. System.out.println("descricao: "+p.getDescricao());
    
  24. } catch (SAXException e) {
    
  25. e.printStackTrace();
    
  26. } catch (IOException e) {
    
  27. e.printStackTrace();
    
  28. }
    
  29. }
    
  30. }
    
  31. }
Criado 15 de dezembro de 2008
Ultima resposta 5 de jan. de 2009
Respostas 7
Participantes 3