catalogo.XMLOut.java Source code

Java tutorial

Introduction

Here is the source code for catalogo.XMLOut.java

Source

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package catalogo;

import java.io.FileWriter;
import java.util.List;
import java.util.Scanner;
import org.jdom2.Attribute;
import org.jdom2.Document;
import org.jdom2.Element;
import org.jdom2.JDOMException;
import org.jdom2.output.Format;
import org.jdom2.output.XMLOutputter;
import org.jdom2.input.SAXBuilder;

/**
 *
 * @author Gabriel
 */
public class XMLOut {

    public void criaDocument(List<String[]> lista, String[] categorias) {

        Element artigos = new Element("listagem");
        Document doc = new Document(artigos);

        //iterao sobre a lista com os artigos
        for (int i = 0; i < lista.size(); i++) {
            Element artigo1 = new Element("artigo");
            artigo1.setAttribute("id", Integer.toString(i));
            //iterao sobre os valores do artigo
            for (int j = 0; j < lista.get(i).length; j++) {
                if (categorias[j].equals("ano"))
                    artigo1.addContent(new Element("ano").setText(lista.get(i)[j]));
                else
                    artigo1.addContent(new Element(categorias[j]).setText(lista.get(i)[j]));
            }
            doc.getRootElement().addContent(artigo1);
        }

        criaXML(doc);

    }

    public static void criaXML(Document doc) {

        /**
         * Esta funo recebe como parmetro um objeto Document corretamente estruturado
         * e cria um arquivo .XML com nome fornecido pelo usurio.
         */

        Scanner in = new Scanner(System.in);

        //Mgica que cria o arquivo
        XMLOutputter xmlOutput = new XMLOutputter();
        Format format = Format.getPrettyFormat();
        format.setEncoding("ISO-8859-1");
        xmlOutput.setFormat(format);

        System.out.printf("Informe o nome do arquivo .xml a ser criado: \n" + "(exemplo: listagem.xml)\n>>> ");
        String name = in.nextLine();

        try {
            xmlOutput.output(doc, new FileWriter("outputs/".concat(name)));
            System.out.println("Arquivo de listagem criado.");
        } catch (Exception e) {
            System.out.println("Falha ao criar arquivo.");
        }
    }
}