Ver mensagens sem resposta | Ver tópicos ativos Hoje é 19 Fev 2020, 15:39



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?

_________________
Eu te ajudei? Quer agradecer? Não precisa nem postar no tópico agradecendo, você me ajudaria muito entrando em um dos meus blogs, comentando e compartilhando os posts nas redes sociais.
Blog: Cedulio Cezar- Tutoriais e dicas voltados para o desenvolvimento de softwares em Java e Android.
Blog: Pedreiros do Software - Tutoriais sobre Java, Android, Banco de dados, Arquitetura, JSF.

App: ThinkTwice - Aplicativo que auxilia no aprendizado de outros idiomas.
App: InstantGilGomes- Aplicativo de humor com bordões clássicos do ilustre Gil Gomes.


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, adilson, AdrianoMM, aechiara, Alan Unger, alex, alexandreizumi, Andrey, arkanjo, bigr ecreio, Bitor, BMaia, bocajunior88, BornSlip, brenno, btleandro, btminzon, buccalon, cabelo, Carlos, celiapinheiro, Clauber, Corneta, Costa, Cr-Informática, dallari, DAVINCE, debal, deborazb, Dirceu W. C. Conte, DITÃO, Dookan, Dorpho, Douglas Siviotti, dreyer, DroidBot, e-azuos, elisa, erissi, estratecnologia, eusobacana, faco, felipedsilva, fernandodotnet, flaviocc, flaviolemos, frances135, frankmendes, gapler, glmsistemas, Google Android, guiba_picolino, guilhermesmo, HanNiBaLSeTDf, hebert, hellbest, henrikesilva1, hostdesigner, hugomarinho, humberto, ICCrawler - ICjobs, Igor_M, inaciofernandes, ismaels, jacksonvpj, JeffCF, Jenius, jijo, João Miguel Aguiar, jrchuteboxe, Julio Assis, juniorfranca, jzaires, kennedyximenes, kleberperea, Kureiton, lafamac, laucode, leandroviana, leonardodamata, lfirpo, luizcyber, luizneto79, m4v0, marcelosv, MARCIOHG, marcosrogel, Marini, maurofjr, maximilianjx, Mig, mmfsndroid, MSPRAFAEL, navegador, neiesc, Nice, niloleite, nirvana, nivaldo, nullPointer, paint-horse, paulabr, Paulo, paulo.esantos, paulokiller, paulovaz, pingumanbr, Portal Android, Qui-Gon Jinn, r.wil, Ranieri, raulcca, rcotonet, regeriob2br, ricardo, ricdigital, rlecheta, Roberto, Rodrigo, rogeriokta, romuloigor, rtodao, ruizsa, samuel.cavanieri, ScoobyGB, shibutani, Shinigami, Snappy [Bot], taluna, tavares767, teamamus, thiagotomais, thosjanas, Toks, tonylock, Transtago, unnamedd, Vector, viniciusgoncalves, waideman, wcaciano, Webnet, wender, wylken, YaCy e 1 visitante


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:

© 2007 - 2016 Portal Android - Comunidade de Desenvolvedores Android

Estamos no Linkedin    Siga-nos no twitter


Powered by phpBB - Hospedado por Bemobi