Galera, tenho uma gui pronta e funcionando, mas preciso usar xml e sou leigo nesse assunto. Gostaria que me dissessem como posso aplicar xlm no meu projeto. Obrigado desde já.
O que exatamente você precisa fazer com XML. Seria leitura de arquivos xml?
Ola Alexandre_Bastos, aqui você pode baixar o Scene Builder e criar sua interface, isto vai te retornar um FXML que é basicamente um XML para aplicações Java com o JavaFX.
Depois para implementar a interface em seu codigo, você vai ter que criar um projeto no netbeans e usar este FXML no seu projeto para então criar uma classe controladora deste FXML e unir com a parte logica da sua aplicação.
Criar e ler arquivos xml. Bom, consegui, em parte, fazer o código de criação. O código em si parece estar certo, mas nao consigo fazer ele rodar dentro do meu main para criar o arquivo .xml
segue código de criaçao :
public void salvarInformaçoes() throws Exception {
DocumentBuilderFactory docBuilderF = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = docBuilderF.newDocumentBuilder();
Document document = docBuilder.newDocument();
Element element = document.createElement("Itens");
document.appendChild(element);
for(int i=0;i<list.size();i++)
{
Element element1 = document.createElement("Item");
document.appendChild(element1);
Attr codigo = document.createAttribute("Código");
codigo.setValue(Integer.toString(list.get(i).getCodigo()));
element.setAttributeNode(codigo);
Attr local = document.createAttribute("Local");
local.setValue(list.get(i).getLocal());
element.setAttributeNode(local);
Attr descriçao = document.createAttribute("Descriçao");
descriçao.setValue(list.get(i).getLocal());
element.setAttributeNode(descriçao);
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer();
DOMSource source = new DOMSource(document);
StreamResult streamresult = new StreamResult( new File("C:\\XML\\dados.xml")) ;
transformer.transform(source, streamresult);
}
Obrigado pela ajuda, mateus!
Acho que a melhor maneira de manipular xml é pela biblioteca XStream, simples fácil e rápido.
Recomendo a utilização da biblioteca JAXB.
Segue link com exemplo: http://stackoverflow.com/questions/26959343/convert-java-object-to-xml-string
Fabricio, onde eu implemento o método pra criar o arquivo xml?
Segue abaixo exemplo de geração e leitura do XML.
`/**
*
-
@author fabricio
*/
public class GeracaoXML {public static void main(String[] args) {
//Objeto a ser convertido em xml Pessoa p = new Pessoa(); p.setNome("Aline"); p.setIdade(29); try { File file = new File("arquivo.xml"); JAXBContext jaxbContext = JAXBContext.newInstance(Pessoa.class); //Marshaller de objeto para xml Marshaller jaxbMarshaller = jaxbContext.createMarshaller(); jaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); jaxbMarshaller.marshal(p, file); System.out.println("<----------XML--------->"); jaxbMarshaller.marshal(p, System.out);//Imprime o XML System.out.println(); //Pula uma linha //Unmarshaller de xml para objeto Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller(); Pessoa customer = (Pessoa) jaxbUnmarshaller.unmarshal(file); System.out.println("<----------OBJETO--------->"); System.out.println(customer);//Imprime o OBJETO } catch (JAXBException e) { e.printStackTrace(); }}
@XmlRootElement
static class Pessoa {private String nome; private Integer idade; public Pessoa() { } public Pessoa(String nome, Integer idade) { this.nome = nome; this.idade = idade; } public String getNome() { return nome; } public void setNome(String nome) { this.nome = nome; } public Integer getIdade() { return idade; } public void setIdade(Integer idade) { this.idade = idade; } @Override public String toString() { return "Pessoa{" + "nome=" + nome + ", idade=" + idade + '}'; }}
}
`
Muito obrigado, Fabricio!! Ajudou demais. Como eu faço pra pegar as informações que foram digitadas na gui e estão dentro de um array serem impressas no arquivo xml?
Recomendo a criação de uma classe (semelhante a classe Pessoa no exemplo). Pegar os valores da GUI e setar no objeto. Depois disso você troca o objeto Pessoa do exemplo pelo objeto que você irá criar.
No caso de Array, você cria uma classe com uma lista dentro. Exemplo:
`@XmlRootElement
static class Pessoa {
private String nome;
private Integer idade;
private List<String> enderecos;`