Software Desktop Leitura XML

10 respostas
denisspitfire

Pessoal, eu gostaria de um tipo de passo a passo do que eu tenho que fazer. Não me acostumei ao caminho das pedras então eu preciso que alguem me diga por onde ir.

Resultado final é: Um programa em java, que eu consiga colocar um diretorio e que em uma tela mostre todos os arquivos XML. Estes XML’s terão de ser cadastrados em um banco de dados.

Eu começo pela GUI ou não?

Estou meio perdido por onde começar

10 Respostas

denisspitfire

Consegui criar um arquivo que lista TODOS os arquivos de um diretorio… porém… quero só XML. Como consigo essa façanha? hehe

import java.io.File;
import java.util.Date;
import java.util.Scanner;

public class ListaArquivos {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		System.out.println("Insira o diretorio");
		String dir = scan.next();

		File diretorio = new File(dir);
		File fList[] = diretorio.listFiles();

		System.out.println("Numero de arquivos no diretorio : " + fList.length);

		for (int i = 0; i < fList.length; i++) {
			System.out.println(fList[i].getName() + " Data de Ultima Modificação: "
					+ new Date(fList[i].lastModified()));
		}
	}
}
luiz_renato

denisspitfire,

Deixa eu entender:
Vc tem que escolher/fornecer um diretório e listar os arquivos xml que estão nesse diretório? E vc tem que verificar se eles estão cadastrados no banco? É isso?

denisspitfire

nao, depois é cadastrado no banco mas por hora preciso listar todos os XML. Procurei os metodos mas por nome… tem um aqui que me pareceu resolver o problema mas nao sei usar (hehe). “Separator”

denisspitfire

FILE FILTER!!

import java.io.File;
import java.io.FileFilter;
import java.util.Date;
import java.util.Scanner;

public class ListaArquivos {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		System.out.println("Insira o diretorio");
		String dir = scan.next();
		
	FileFilter ff = new FileFilter() { 
            public boolean accept(File b){ 
                return b.getName().endsWith(".xml"); 
            }
		};
        
		File diretorio = new File(dir);
		File fList[] = diretorio.listFiles(ff);

		System.out.println("Numero de arquivos no diretorio : " + fList.length);
		
		for (int i = 0; i < fList.length; i++) {
			System.out.println(fList[i].getName() + " Data de Ultima Modificação: "
					+ new Date(fList[i].lastModified()));
		}
		
		
	}
}
denisspitfire

agora é o seguinte, preciso abrir, acho que um fileopen… porem preciso guardar no banco o que tiver estruturado no xml…
meu problema nao é fazer os metodos é juntar essa bagaça toda

denisspitfire

tipo… ficou em uma string só, e como eu poderia separar? split nao da… (eu acho) dai preciso jogar pra um objeto depois para um banco de dados

import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.File;
import java.io.FileFilter;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.util.Scanner;

public class ListaArquivos {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		System.out.println("Insira o diretorio");
		String dir = scan.next();

		FileFilter ff = new FileFilter() {
			public boolean accept(File b) {
				return b.getName().endsWith(".xml");
			}
		};

		File diretorio = new File(dir);
		File fList[] = diretorio.listFiles(ff);

		System.out.println("Numero de arquivos no diretorio : " + fList.length);

		for (int i = 0; i < fList.length; i++) {
			try {
				FileInputStream fstream = new FileInputStream(fList[i]);
				DataInputStream in = new DataInputStream(fstream);
				BufferedReader br = new BufferedReader(
						new InputStreamReader(in));
				String strLine;
				while ((strLine = br.readLine()) != null)   {
					System.out.println (strLine);
				}
				in.close();
			} catch (Exception e) {
				System.out.println(e.getMessage());
			}
		}

	}
}
denisspitfire

:shock: qual eu baixo?
estou pensando em criar uma lista com os valores do xml, dai jogo para o banco de dados transformando em objeto talvez… mas enfim, preciso usar o xstream
http://xstream.codehaus.org/download.html
qual que eu baixo afinal para add no meu projeto?

denisspitfire

Oque esta falando de argumentos? os dois não sao uma lista??

import java.io.BufferedReader;  
import java.io.DataInputStream;  
import java.io.File;  
import java.io.FileFilter;  
import java.io.FileInputStream;  
import java.io.InputStreamReader;  
import java.util.List;
import java.util.Scanner;
import com.thoughtworks.xstream.XStream;  
  
public class ListaArquivos {  
    public static void main(String[] args) {  
        Scanner scan = new Scanner(System.in);  
        System.out.println("Insira o diretorio");  
        String dir = scan.next();  
        
        FileFilter ff = new FileFilter() {  
            public boolean accept(File b) {  
                return b.getName().endsWith(".xml");  
            }  
        };  
        XStream xstream = new XStream(); 
        File diretorio = new File(dir);  
        File fList[] = diretorio.listFiles(ff);  
  
        System.out.println("Numero de arquivos no diretorio : " + fList.length);  
  
        for (int i = 0; i < fList.length; i++) {
        	List amigos = (List) xstream.fromXML(diretorio.listFiles(ff));//oque esta faltando como argumento??
        }
  
    }  
}
denisspitfire

pouts pq essa parte nao funciona? só preciso de uma lista ou de um objeto que guarde esses valores

for (int i = 0; i < fList.length; i++) {  
            try {  
                FileInputStream fstream = new FileInputStream(fList[i]);  
                DataInputStream in = new DataInputStream(fstream);  
                BufferedReader br = new BufferedReader(  
                        new InputStreamReader(in));  
                String strLine;  
                List amigos = (List) xstream.fromXML(br.readLine());
                
                System.out.println(amigos.getHeight());
                
                in.close();  
            } catch (Exception e) {  
                System.out.println(e.getMessage());  
            } 
        }
denisspitfire

alguem pls… travei como previsto kkkk
estou tentando agora com sax… até achei um exemplo bacana mas nao consigo ver direito porque parece magico d+… o xstream estava mais “detalhado” as coisas que aconteciam.

Criado 25 de abril de 2012
Ultima resposta 25 de abr. de 2012
Respostas 10
Participantes 2