Arquivo XML:
Código: Selecionar todos
<?xml version="1.0"?>
<xml>
<exportacao>
<itens id="0001">
<ecnpj>19448850000185</ecnpj>
<prevenda>4407</prevenda>
<codproduto>0000071</codproduto>
<ean></ean>
<descricao>PRODUTO PADRAO DO SISTEMA 2</descricao>
<unidade>UN</unidade>
<quant>2</quant>
<vlrunit>98</vlrunit>
<totalitem>196</totalitem>
<codtrib>03</codtrib>
<ncm>95049090</ncm>
<cest></cest>
</itens>
<itens id="0002">
<ecnpj>19448850000185</ecnpj>
<prevenda></prevenda>
<codproduto>0000072</codproduto>
<ean></ean>
<descricao>PRODUTO PADRAO DO SISTEMA 3</descricao>
<unidade>UN</unidade>
<quant>5</quant>
<vlrunit>9</vlrunit>
<totalitem>45</totalitem>
<codtrib>03</codtrib>
<ncm>85176262</ncm>
<cest>2111000</cest>
</itens>
</exportacao>
</xml>
Código: Selecionar todos
cStr := fOpen( cArq )
oXML := TXMLDocument():New( cStr, HBXML_STYLE_NOESCAPE )
IF oXML:nError != HBXML_ERROR_NONE
Msgstop( "xml com problema " + Str( oXML:nError ) )
MonitorExecuta := 1
Select(Areant)
RETURN
ENDIF
oPedido := oXML:findfirst( "itens" )
IF oPedido == NIL
Msgstop( "TAG itens não localizada." )
MonitorExecuta := 1
Select(Areant)
RETURN
ENDIF
oIterator := TXmlIterator():New( oPedido )
DO WHILE .T.
DO WHILE .T.
oCurrent := oIterator:Next()
IF oCurrent == NIL
EXIT
ELSE
IF oCurrent:cName == "ecnpj"
veCNPJ := oCurrent:cData
ELSEIF oCurrent:cName == "prevenda"
vPreVenda := oCurrent:cData
ELSEIF oCurrent:cName == "codproduto"
vcodproduto := oCurrent:cData
ELSEIF oCurrent:cName == "ean"
vean := oCurrent:cData
ELSEIF oCurrent:cName == "descricao"
vdescricao := oCurrent:cData
msginfo(vDescricao)
ELSEIF oCurrent:cName == "unidade"
vunidade := oCurrent:cData
ELSEIF oCurrent:cName == "quant"
vquant := oCurrent:cData
ELSEIF oCurrent:cName == "vlrunit"
vVlrUnit := oCurrent:cData
ELSEIF oCurrent:cName == "totalitem"
vtotalitem := oCurrent:cData
ELSEIF oCurrent:cName == "codtrib"
vcodtrib := oCurrent:cData
ENDIF
Endif
ENDDO
oPedido := oXML:findnext( "itens" )
If oPedido == NIL
exit
EndIf
Enddo




