>

Fórum

Fórum da RL System, voltado para analistas, programadores etc. Tudo sobre linguagem de programação e desenvolvimento Full Stack: Banco de Dados, Android, C#, Java, .NET, PHP, Node, Javascript, TypeScript, Front, HTML e muito mais.



Nao consigo ler o XML com o android


Bom dia...
Sou novo em programação e estou com poblema nesse codigo que faz a leitura do xml, nao consigo ler o xml todo.
Exemplo no xml contem Emitente e Destinatario so consigo ler um e nao os dois, a parte que fa a leitura esta é

"NodeList nl = doc.getElementsByTagName(KEY_INFNFE);" queria que esse looping ler-se o xml todo, alguem poderia me ajudar?




static final String URL = "http://192.168.1.103/xml1.xml";
// XML node keys
//contantes que representam as tags do arquivo XML

static final String KEY_INFNFE = "infNFe"; // parent node
static final String KEY_NATOP = "natOp"; // Operação da Nf-e
static final String KEY_INDPAG = "indPag"; // Quantidade de Pagina
static final String KEY_MOD = "mod"; // Modelo da Nf-e
static final String KEY_SERIE = "serie"; // Serie da Nf-e
static final String KEY_NNF = "nNF"; // Numero da Nf-e
static final String KEY_DEMI = "dEmi"; // Data da Emissao
static final String KEY_DSAIENT = "dSaiEnt"; // Data Saida
static final String KEY_TPNF = "tpNF"; // Tipo da Nf-e
// Dados do Emitente
// static final String KEY_DEST = "dest"; // patent node
static final String KEY_CNPJ = "CNPJ"; // CNPJ do emitente
static final String KEY_XNOME = "xNome"; // Nome
static final String KEY_XLGR = "xLgr"; // Rua
static final String KEY_XBAIRRO = "xBairro"; // Bairro
static final String KEY_NRO = "nro"; // Numero
static final String KEY_CEP = "CEP"; // Cep
static final String KEY_XMUN = "xMun"; // Municipio
static final String KEY_FONE = "fone"; // Telefone
static final String KEY_IE = "ie"; // Inscrição Estadual

// Dados Destinatario
// static final String KEY_DEST = "dest"; // patent node
// static final String KEY_XNome = "xNome"; // patent node


@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

ArrayList> menuItems = new ArrayList>();

XMLParser parser = new XMLParser();
String xml = parser.getXmlFromUrl(URL); // getting XML
Document doc = parser.getDomElement(xml); // getting DOM element

// Parte que faz a leitura do xml

NodeList nl = doc.getElementsByTagName(KEY_INFNFE);
// looping through all item nodes
for (int i = 0; i < nl.getLength(); i++) {
// creating new HashMap
HashMap map = new HashMap();
Element e = (Element) nl.item(i);
// adding each child node to HashMap key => value
map.put(KEY_NATOP, parser.getValue(e, KEY_NATOP));
map.put(KEY_DSAIENT, parser.getValue(e, KEY_DSAIENT));
map.put(KEY_INDPAG, "Rs." + parser.getValue(e, KEY_INDPAG));
map.put(KEY_MOD, parser.getValue(e, KEY_MOD));
map.put(KEY_SERIE, parser.getValue(e, KEY_SERIE));
map.put(KEY_NNF, parser.getValue(e, KEY_NNF));
map.put(KEY_DEMI, parser.getValue(e, KEY_DEMI));
map.put(KEY_TPNF, parser.getValue(e, KEY_TPNF));
map.put(KEY_CNPJ, parser.getValue(e, KEY_CNPJ));
map.put(KEY_XNOME, parser.getValue(e, KEY_XNOME));
map.put(KEY_XLGR, parser.getValue(e, KEY_XLGR));
map.put(KEY_XBAIRRO, parser.getValue(e, KEY_XBAIRRO));
map.put(KEY_NRO, parser.getValue(e, KEY_NRO));
map.put(KEY_CEP, parser.getValue(e, KEY_CEP));
map.put(KEY_XMUN, parser.getValue(e, KEY_XMUN));
map.put(KEY_FONE, parser.getValue(e, KEY_FONE));
map.put(KEY_IE, parser.getValue(e, KEY_IE));





// adding HashList to ArrayList
menuItems.add(map);
}

// Adding menuItems to ListView
ListAdapter adapter = new SimpleAdapter(this, menuItems,
R.layout.list_item,
new String[] { KEY_XNOME, KEY_XLGR, KEY_DEMI, KEY_CEP, KEY_XBAIRRO, KEY_CNPJ, KEY_XMUN,
KEY_DSAIENT}, new int[] {
R.id.nome, R.id.endereco, R.id.data, R.id.cep, R.id.bairro, R.id.cnpj, R.id.muni, R.id.saida });

setListAdapter(adapter);

// selecting single ListView item
ListView lv = getListView();

lv.setOnItemClickListener(new OnItemClickListener() {

@Override
public void onItemClick(AdapterView parent, View view,
int position, long id) {
// getting values from selected ListItem
String nome = ((TextView) view.findViewById(R.id.nome)).getText().toString();
String end = ((TextView) view.findViewById(R.id.endereco)).getText().toString();
String descricao = ((TextView) view.findViewById(R.id.data)).getText().toString();
// String cep = ((TextView) view.findViewById(R.id.cep)).getText().toString();

// Starting new intent
Intent in = new Intent(getApplicationContext(), SingleMenuItemActivity.class);
in.putExtra(KEY_XNOME, nome);
in.putExtra(KEY_XBAIRRO, end);
in.putExtra(KEY_DEMI, descricao);
startActivity(in);

}
});
}

}

[XML]





22
22084401
VENDA
1
55
1
135658
2014-04-22
2014-04-22
1
2208007
1
1
8
1
1
0
4.01



07413835000465
CENTRO DE DIST. MOTO MOURA LTDA
CD MOTO MOURA

BR 316, KM-305
10
ALTAMIRA
2208007
PICOS
PI
64602000
1058
Brasil
8934222655


194710262
3


17989647000190
DOMINGOS JOAQUIM DE OLIVEIRA

TRAV SANTA ANA II
123
CENTRO
2206506
MONSENHOR HIPOLITO
PI
64650000
1058
BRASIL


195162749



369420

INTERRUPTOR BUZINA BOTAO BIZ-125 06/08
85365090
5403
UN
1.0000
7.380000
7.38

UN
1.0000
7.3800
0.52
1


0.25

0
60
0.00
0.00


01
6.86
0.65
0.04


01
6.86
3.00
0.21





268769

MOLA PEDAL CAMBIO TITAN-150
87141000
5403
PC
5.0000
3.000000
15.00

PC
5.0000
3.0000
1.07
1

0.51

0
60
0.00
0.00


01
13.93
0.65
0.09


01
13.93
3.00
0.42




299138

PISTAO KIT 0.25 TITAN-150
84099120
5403
KT
1.0000
33.840000
33.84

KT
1.0000
33.8400
2.41
1

0.00

0
60
0.00
0.00


04


04






299145

PISTAO KIT 0.50 TITAN-150
84099120
5403
KT
1.0000
33.840000
33.84

KT
1.0000
33.8400
2.41
1

0.00

0
60
0.00
0.00


04


04






0.00
0.00
0.00
0.00
90.06
0.00
0.00
6.41
0.00
0.00
0.13
0.63
0.00
83.65
0.76



0

07413835000465
CENTRO DE DISTRIBUICAO MOTO MOURA LTDA
194710262
ROD BR 316 KM 305, 10
PICOS
PI


AAA0001
PI


1
Diversos
Diversas
0.690
0.710



Desconto Incondicional 6.41|











zn53NMrUjc8BfsmrZF7cGeGxeQk=


O5D4tma0RSbZc9grR0tPF+zat8b4GpD2YTXixKPKXA2zcNmPaiRBIULUKnY0fOdePbLNkffPaJZYyjUlj+Kp2kqqwuMMk5U6V1CNUnkVK7Jt3rCr32CwFEEx9NqeodOFcm3xbsaLyyfCfSeP0yM3GCHumPpaGuDbm3r7tZeKqfnNEsI36+wME1X7dfagti+eKZ1008pB2pytcra8y5fB5TzZCPss5UkTS+lH32ywYVsO9CnhgHm9lewg8bJFDpd8bEiLgOhtPIp+xus8ii0QIbL/nKHrLRj5dFccV7xtmxzC7u1qsWI6k1YTDuW1rVg++lUZO2asiALiY4fLE0qAKQ==


MIIINzCCBh+gAwIBAgIQbwQJ9u2wb0qDP3KXfMN9RjANBgkqhkiG9w0BAQsFADB1MQswCQYDVQQGEwJCUjETMBEGA1UEChMKSUNQLUJyYXNpbDE2MDQGA1UECxMtU2VjcmV0YXJpYSBkYSBSZWNlaXRhIEZlZGVyYWwgZG8gQnJhc2lsIC0gUkZCMRkwFwYDVQQDExBBQyBTSU5DT1IgUkZCIEc0MB4XDTEzMTIyMzAwMDAwMFoXDTE0MTIyMjIzNTk1OVowgfMxCzAJBgNVBAYTAkJSMRMwEQYDVQQKFApJQ1AtQnJhc2lsMQswCQYDVQQIEwJQSTEOMAwGA1UEBxQFUElDT1MxNjA0BgNVBAsULVNlY3JldGFyaWEgZGEgUmVjZWl0YSBGZWRlcmFsIGRvIEJyYXNpbCAtIFJGQjEWMBQGA1UECxQNUkZCIGUtQ05QSiBBMTEiMCAGA1UECxQZQXV0ZW50aWNhZG8gcG9yIEFSIEFycnVkYTE+MDwGA1UEAxM1Q0VOVFJPIERFIERJU1RSSUJVSUNBTyBNT1RPIE1PVVJBIExUREE6MDc0MTM4MzUwMDAyMDEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCntmqTWf5r7aFB4yfu4zYNKiWy/7dfR21MwXn3R7PdawwxI1rHqmEIhVKcZKPpbHz6DklSqcJIA/ItpcY6v6xt3la54YSwFBCXbnknkp0T+jcXqCzASNxdiXlgP0RIUIsrdpuu+tHzAAbs6CxYcy81wPbDQd6C8AAz2rLXd7Co3J8Pu2lqTxsUswkGXnF45IjUVBXlFr8QytcX3W9N7abnLskBaVt44b/8pQEAWPWCIT1KF0L9p2T3JMXXme+pBSz9xgmfhBO/FpNngY3CqouN1GnrkDS5TvUx17xbFYoOdnnnb9Sj8pys0PFywUntDR0O+SSQmzdPWvEnqw2zzjv3AgMBAAGjggNCMIIDPjCBugYDVR0RBIGyMIGvoDgGBWBMAQMEoC8ELTE1MDkxOTY3MzA3MDg5NTgzMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMKAiBgVgTAEDAqAZBBdBTEJJTk8gQU5UT05JTyBERSBNT1VSQaAZBgVgTAEDA6AQBA4wNzQxMzgzNTAwMDIwMaAXBgVgTAEDB6AOBAwwMDAwMDAwMDAwMDCBG2Vkc29uLmNvbnRhYmlsQHlhaG9vLmNvbS5icjAJBgNVHRMEAjAAMB8GA1UdIwQYMBaAFCnDgdnobrK/USQPl0YTDLjexDWYMA4GA1UdDwEB/wQEAwIF4DB4BgNVHSAEcTBvMG0GBmBMAQIBHDBjMGEGCCsGAQUFBwIBFlVodHRwOi8vaWNwLWJyYXNpbC5hY3NpbmNvci5jb20uYnIvcmVwb3NpdG9yaW8vZHBjL0FDX1NJTkNPUl9SRkIvRFBDX0FDX1NJTkNPUl9SRkIucGRmMIIBDQYDVR0fBIIBBDCCAQAwVKBSoFCGTmh0dHA6Ly9pY3AtYnJhc2lsLmNlcnRpc2lnbi5jb20uYnIvcmVwb3NpdG9yaW8vbGNyL0FDU0lOQ09SUkZCRzQvTGF0ZXN0Q1JMLmNybDBToFGgT4ZNaHR0cDovL2ljcC1icmFzaWwub3V0cmFsY3IuY29tLmJyL3JlcG9zaXRvcmlvL2xjci9BQ1NJTkNPUlJGQkc0L0xhdGVzdENSTC5jcmwwU6BRoE+GTWh0dHA6Ly9yZXBvc2l0b3Jpby5pY3BicmFzaWwuZ292LmJyL2xjci9DZXJ0aXNpZ24vQUNTSU5DT1JSRkJHNC9MYXRlc3RDUkwuY3JsMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDBDCBmAYIKwYBBQUHAQEEgYswgYgwXAYIKwYBBQUHMAKGUGh0dHA6Ly9pY3AtYnJhc2lsLmNlcnRpc2lnbi5jb20uYnIvcmVwb3NpdG9yaW8vY2VydGlmaWNhZG9zL0FDX1NJTkNPUl9SRkJfRzQucDdjMCgGCCsGAQUFBzABhhxodHRwOi8vb2NzcC5jZXJ0aXNpZ24uY29tLmJyMA0GCSqGSIb3DQEBCwUAA4ICAQA2Mxg3A/9I3wEBs5Rh7Inh3XsiUepHpYXFM3Xm4w1L6voIjjIKWpZjkjLjUEuEWYsBnfBzFWvN8dW4d5SObh9KOm8K9IPVFkZJKWu1/hTVh8ypUVZEC4DjbgsHUJBTUOwIUp8RH+vsZdN6/MkCKHrgOj/Vo/i/2w31LISO+roLyoAiFz5OBW4HJydYm+NTaVEFkdvwYpcra2USPH4r3evyTri8JB2ch1ZJjqilQ9QuF8nP10Z/vfFRI9LwcrpAbr2yRfXY3+d+LgrR3sKfCowHeBWKLyUkbeW6hbYN38nZMYGfhZLkoJ51YLJCNskdUEJf23oUe/FCdSAPzIIvSa6Tk+ZOIvLaP+0dv8sEX7j5cwSxrD+9m7Oxe6UlRzdE24zQKORVx8lyUH3g0g1eYrSC4ekbcjgkcr1XJ9yy7664JykVYHUSICPGoUd+l0fwjsxA85/H7eIDobn1iSpLZXYP5TOsHdcrXydBnaW6M1DF2v5kO0QJ4SkJyOXrSGVv8jArehxdt7K3lZbp5KBor2znhvRHXiQ6JqRZMbY2AVg/2KeZj6twEOiUl3M6B6+x9NRsnPqpbcFA8orR+EAzmxD7iPmtwGkeXtrkj3OXkDgA57aD724r9tl9dEI9ceH9P2c92S44AQfOtiIFjEu4eWGGyKOv0AuppF1T2kHiHkWPFw==





1
SVAN_3.1.2
22140407413835000465550010001356581220844018
2014-04-22T10:09:29
422140004775819
zn53NMrUjc8BfsmrZF7cGeGxeQk=
100
Autorizado o uso da NF-e




[/XML]



3 Respostas


ola Leonardo...

veja este site aqui

http://ibm.com/developerworks/br/opensource/library/x-android/




Obrigado Andre pela dica, mas meu codigo ja ta pronto, so tou com erro no looping na linha 44, quando ele ler o XML so pegar a primeira parte da descrição, Exemplo do jeito que ta era pra ler o XML do comerço ao fim, mas quando ele pega a primeira descrição ele nao ler mais, ele so ler a segunda parte se eu setar ele no looping, o unico erro é esse mas como eu sou novo em programação pra mim ta eu pouco dificio ajeitar esse looping,
você pode me ajudar?




Leonardo

tente isso aqui

try {
URL url = new URL("seu site\arquivo.xml");
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(new InputSource(url.openStream()));
doc.getDocumentElement().normalize();

NodeList nodeList1 = doc.getElementsByTagName("parent node here");
for (int i = 0; i < nodeList1.getLength(); i ) {
Node node = nodeList1.item(i);
}
} catch(Exception e) {

}