MANUAL PARA APRENDER A LER XML

LUCIANORW 21/10/2013 13:47:01
#430210
Boa tarde!
Andei vendo alguns posts aqu e na internet, o assunto é muito difundido, só que não achei um [Ô]manual basicão[Ô].
Estou precisando/necessitando aprender a ler e importar o XML da NFe.
Poderiam me indicar um manual, onde me ensine bem didaticamente como ler os nós do XML, o que eu tenho que ir abrindo, qual sequencia e como fechar.
Tudo isso no access.

Att
Luciano
LUCASVA 21/10/2013 16:07:36
#430221
o luciano, tem varios exemplos aqui;

para um pouquinho pra ler e vc vai encontra muita coisa boa;

sempre lembrando da referencia do xml e td da certo no final;
KERPLUNK 21/10/2013 17:18:49
#430226
Resposta escolhida
O primeiro truque é parar de ver um XML como um arquivo de texto, ele é simplesmente dados de uma classe serializados em forma de texto
LUCIANORW 22/10/2013 09:03:40
#430239
Bom dia Lucas e Kerp!
Andei vendo bastante coisa aqui no forum, MSDN e outros, mas um guia pratico, começando do basico não consegui encontrar.
Se for o caso de copiar, colar a adaptar, tem muita coisa, mas ai não aprende.
Vocês não tem nadinha de manual para me indicar?

Att
KERPLUNK 22/10/2013 09:12:26
#430240
O primeiro passo, seria entender OOP depois entender serialização e desserialização.
LUCIANORW 24/10/2013 12:23:10
#430359
Boa tarde!!!
Estou tentando entender apenas esse código, andei mexendo e fiz umas cacas, voltei ao normal.
Na verdade preciso saber onde começa a fazer o loop para listar os produtos, pois, ele está percorrendo apenas o 1º registro.


Function lancar_produtos_xml(oChild0 As IXMLDOMElement) As Boolean
Dim oChild As IXMLDOMElement
Dim oChild4 As IXMLDOMNode
Dim oChildProd As IXMLDOMNode
Set tbl2 = CurrentDb.OpenRecordset([Ô]tbl_temp[Ô])
With tbl2
.AddNew
For Each oChild In oChild0.childNodes
If UCase(oChild.nodeName) = [Ô]PROD[Ô] Then
For Each oChildProd In oChild.childNodes
If UCase(oChildProd.nodeName) = [Ô]xProd[Ô] Then
tbl2!descricao = Mid(Format(oChildProd.Text, [Ô]>[Ô]), 1, 70)
ElseIf UCase(oChildProd.nodeName) = [Ô]QCOM[Ô] Then
tbl2!qtde = Round(Val(oChildProd.Text), 4)
ElseIf UCase(oChildProd.nodeName) = [Ô]vProd[Ô] Then
tbl2!vr = Round(Val(oChildProd.Text), 2)
End If
Next
End If
Exit For
Next
tbl2.Update
End With
tbl2.Close
Set tbl2 = Nothing
CurrentDb.Close
End Function
KERPLUNK 24/10/2013 13:19:03
#430360
Da maneira como está fazendo, você vai ter MUUUUUUUUITO mais trabalho do que se usar serialização/desserialização.
LUCIANORW 24/10/2013 14:14:32
#430361
Ola Kerplunk,
Andei pesquisando sobre o assunto, mas ta dureza de entender essa coisa.
Nunca precisei mexer com xml, mas agora bateu este problema na cara.
Ache este exemplo interessante.
http://msdn.microsoft.com/pt-br/library/58a18dwa(v=vs.80).aspx?cs-save-lang=1&cs-lang=vb#code-snippet-1

No codigo que postei, consegui achar o problema, mas do modo que você está falando, me parece mais simples mesmo.
Mas no codigo que postei, poderia me explicar como ficaria do seu modo, se sim, poderia comentar o código para que eu possa entender?

Att
Luciano
Tópico encerrado , respostas não são mais permitidas