Ver mensagens sem resposta | Ver tópicos ativos Hoje é 30 Set 2020, 17:53



Responder Tópico  [ 7 Mensagens ] 
 jDOM + Android (XML Parsing) 
Autor Mensagem
What is a Activity?
What is a Activity?

Data de registro: 15 Jun 2011, 17:56
Mensagens: 10
Mensagem jDOM + Android (XML Parsing)
Pra quem acha SAX e DOM muito complexos tem uma boa alternativa, jDOM (www.jdom.org) um parser de XML bem simples.
Fica explicando horrores não adianta por que eles tem documentação no site, mas vou postar um exemplo bem simples e de fácil compreensão, bem comentado para que os colegas possam ficar a par da ferramenta.
Segue abaixo:
package com.ibssistemas.ibs.xml;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;

import org.jdom.Document;
import org.jdom.Element;
import org.jdom.input.SAXBuilder;
import org.jdom.output.XMLOutputter;

import com.ibssistemas.ibs.system.Settings;

import android.net.Uri.Builder;
import android.os.Environment;
import android.util.Log;

public class jXML {
    private static File file = new File(Environment.getExternalStorageDirectory()+"/Android/data/com.ibssistemas.ibs/XML/settings.xml");
    private static File dirs = new File(Environment.getExternalStorageDirectory()+"/Android/data/com.ibssistemas.ibs/XML/");
   
    public static void createOrOpenConfig() {
        try {
        if (!file.exists())
            createDefaultConfig();
        FileInputStream fIS = new FileInputStream(file);
        SAXBuilder builder = new SAXBuilder();
        builder.setValidation(true);
        builder.setIgnoringElementContentWhitespace(true);
        Document doc = builder.build(fIS);
        Element root = doc.getRootElement();
        //----!Pega as childs e escreve na classe Settings!
        Settings.setLocal(String.valueOf(root.getChild("Local")));
        Settings.setRemote(String.valueOf(root.getChild("Remote")));
        Settings.setType(String.valueOf(root.getChild("Type")));
        Settings.setKeepUser(Boolean.valueOf(root.getChildText("KeepUser")));
        Settings.setUser(String.valueOf(root.getChild("User")));
        Settings.setPass(String.valueOf(root.getChild("Pass")));
        fIS.close();
        } catch (Exception e) { Log.e("jXML", "Erro ao ler arquivo XML!"); Log.e("jXML", e.getMessage()); }
    }
   
    public static void updateConfigXml() {
        try {
            //----!Processo padrãod e abertura de XML!
            FileInputStream fIS = new FileInputStream(file);
            SAXBuilder builder = new SAXBuilder();
            Document doc = builder.build(fIS);
            Element root = doc.getRootElement();
            //----!Atualiza os valores do documento! (Automaticamente refletidos no arquivo!
            root.getChild("Local").setText(Settings.getLocal());
            root.getChild("Remote").setText(Settings.getRemote());
            root.getChild("Type").setText(Settings.getType());
            root.getChild("KeepUser").setText(Settings.getKeepUser().toString());
            root.getChild("User").setText(Settings.getUser());
            root.getChild("Pass").setText(Settings.getPass());
            fIS.close();           
        } catch (Exception e) { Log.e("jXML", "Erro ao atualizar XML"); Log.e("jXML", e.getMessage()); }
    }
   
    public static void createDefaultConfig() {
        try {
        //----!Parte da criação do arquivo
        if (!dirs.exists())
            dirs.mkdirs();
        file.createNewFile();
        //----!Parte da montagem do XML
        Element root = new Element("Configuration");
        Element local = new Element("Local");
        Element remote = new Element("Remote");
        Element type = new Element("Type");
        Element keepuser = new Element("KeepUser");
        Element user = new Element("User");
        Element pass = new Element("Pass");
        //----!Atribuição de dados
        local.setText("http://192.168.90.239:8080");
        remote.setText("http://ibsip.homeip.net:8080");
        type.setText("local");
        keepuser.setText("true");
        user.setText("1");
        pass.setText("1");
        //----!Ligação de dados
        root.addContent(local);
        root.addContent(remote);
        root.addContent(type);
        root.addContent(keepuser);
        root.addContent(user);
        root.addContent(pass);
        //----!Saída de dados para o documento/arquivo/etc...     
        Document doc = new Document(root); //Cria o documento com o NODE root
        //----!Serializa o XML e faz o Output
        XMLOutputter serial = new XMLOutputter();
        //----!Cria a OutPutStrem
        FileOutputStream out = new FileOutputStream(file);
        //----!Escreve o arquivo
        serial.output(doc, out);   
        out.close();
        } catch (Exception e) { Log.e("jXML", "Erro ao criar arquivo de configuração inicial"); }
       
    }

}
 


Caso tenham dúvidas, deixem aqui que eu respondo.


16 Ago 2011, 17:01
Perfil
Google employee
Google employee
Avatar de usuário

Data de registro: 05 Abr 2011, 04:47
Mensagens: 1968
Localização: Rio de Janeiro
Mensagem Re: jDOM + Android (XML Parsing)
Eu sempre indico o JDOM. Fiz um leitor de xml em alguns minutos com ela!! Muito simples e fácil de usar!!

Parabéns!!

Abraços!

_________________
Alexandre Antunes
@a3b @bemobi
Moto X

App@Bemobi: Apps Club - Loja de Apps baseada em assinatura que dá direito a usar ~400 Apps.

Campanha: Facilite sua vida e a dos outros usuários.
Objetivo: Vamos colocar a tag [RESOLVIDO] no título do tópico quando o problema for resolvido.


Use a ferramenta de busca do fórum e não espere tanto para que a sua dúvida seja respondida!

Quer trabalhar comigo??


17 Ago 2011, 02:27
Perfil WWW
What is a Activity?
What is a Activity?

Data de registro: 15 Jun 2011, 17:56
Mensagens: 10
Mensagem Re: jDOM + Android (XML Parsing)
Beleza, vou fazer um post sobre Xstream também. :)


17 Ago 2011, 09:34
Perfil
What is Android?
What is Android?

Data de registro: 17 Ago 2011, 17:28
Mensagens: 3
Mensagem Re: jDOM + Android (XML Parsing)
/vv eu não sei utilizar classes externas no eclipse
alguem disposto a ajudar um noob?


17 Ago 2011, 18:23
Perfil
Google employee
Google employee
Avatar de usuário

Data de registro: 05 Abr 2011, 04:47
Mensagens: 1968
Localização: Rio de Janeiro
Mensagem Re: jDOM + Android (XML Parsing)
rasarima,

Então vc deve expor a sua dificuldade. O ideal é vc criar um tópico lá no Android Básico pra tratarmos desse assunto.

Abraços!

_________________
Alexandre Antunes
@a3b @bemobi
Moto X

App@Bemobi: Apps Club - Loja de Apps baseada em assinatura que dá direito a usar ~400 Apps.

Campanha: Facilite sua vida e a dos outros usuários.
Objetivo: Vamos colocar a tag [RESOLVIDO] no título do tópico quando o problema for resolvido.


Use a ferramenta de busca do fórum e não espere tanto para que a sua dúvida seja respondida!

Quer trabalhar comigo??


17 Ago 2011, 22:15
Perfil WWW
What is a Activity?
What is a Activity?

Data de registro: 15 Jun 2011, 17:56
Mensagens: 10
Mensagem Re: jDOM + Android (XML Parsing)
Cara basicamente segue isso:


Cria uma pasta chamada 'libs' no seu projeto, joga o arquivo .jar la dentro, depois va em
Build Path --> Add to Build Path
E a lib vai ser importada pro seu projeto.

Simples, rápido e facil. ;)


18 Ago 2011, 09:44
Perfil
Application Life Cycle
Application Life Cycle
Avatar de usuário

Data de registro: 08 Ago 2011, 16:21
Mensagens: 226
Localização: Ponta Grossa - PR / Blumenau - SC
Mensagem Re: jDOM + Android (XML Parsing)
o .jar do jdom eu achei.

agora o .jar desse import com.ibssistemas.ibs.system.Settings;

eu não faço idéia de como achar.

alguem me explica o que é isso e onde encontrar?


21 Set 2011, 22:46
Perfil
Mostrar mensagens anteriores:  Organizar por  
Responder Tópico   [ 7 Mensagens ] 

Quem está online

Usuários vendo este fórum: Aderbal Nunes, albinoneto, alex, alexandrefett, alexsander.miranda, Andre, andreluiz, Andrey, Antonio Carlos, Aparec, attomweb, Augusto, augustomig, Avelino Mateus Neto, Bass, Biel, bigr ecreio, billsombrio, bocajunior88, BOMBER27, boydivalor, Bravox, brenda, Bruno, C0GuM3I0, caio, camilodev, carlos rodrigues, carlosavasconcelos, cenatech, Chanceler Supremo Finis Valorum, charly, china, claudioalfonso, cleiton_maciel, Comandante Cody, Cr-Informática, criscmaia, culumin, Daniel Batista, darllan.marinho, DAVINCE, debal, difrene, dikiloco, Dudi_FC, edwarvelarde, Everton Moreira, fabielp, Faroli, fcoroa, felipecomp19, felipetesc, ffabiano, Flavio Alves, flaviojps, Gabriel, germanno, Gooooogle, grandebaro, Guilherme Cobain, guto.pro, helder, Heritrix, humberto, ICCrawler - ICjobs, jairo, JairoCN, jaydson, jhonguitar, Jless@, jmarcos14, jorgeFernandes, juliana_costa, juliano, juliaojunior, Juliobcosta, klyff, leeeeooooooo, Leonardo, lkunta, lucastgomes, lucianoalves, lucianoedipo, luizcesar, Marcelo Alves, MarceloLuz, MARCIOHG, marciosoliveira, marcos_trb, marinho5, marlovich, martins, Mayron Cimardi, Mig, miguel, mrkensley, msmdark, Mvitor, mvoto, nakahara, nishimura.ichigo, Padawan, pamonteiro, paulo.weber, paulokiller, paulovaz, pchofard, peixe, phpower1, piantino, Portal Android, Princesa Léia Organa, Rafael Alencar, Rainha Amidala/Padmé, rananfu, rdchaves, regisjj, renanpl, rmendes, Robson Florentino, robsonrg, rodrigo_corinthians, rodrigoinnova, Rogério, romualdo, Romulo, ronamore, rosano, ruizsa, shadow, shazaum, skcratch, srmoreira, suportecr, thiaguim, Tiago Sousa Roch, tiasousa, tonholis, Vector, weverton, Wryel, wylken, xGambit, Yoshihury, Zam Wesell, zenden1503, zorieuq e 5 visitantes


Você não pode criar novos tópicos neste fórum
Você não pode responder tópicos neste fórum
Você não pode editar suas mensagens neste fórum
Você não pode excluir suas mensagens neste fórum
Você não pode enviar anexos neste fórum

Procurar por:
cron

© 2007 - 2016 Portal Android - Comunidade de Desenvolvedores Android

Estamos no Linkedin    Siga-nos no twitter


Powered by phpBB - Hospedado por Bemobi