Olá Pessoal, queria deserializar um objeto XML, queria exemplos de como fazer isso. Sou nova em Advpl. se alguém tiver algum fonte que possa compartilhar agradeço!
Para fazer a serialização do meu objeto eu sigo exatamente esse exemplo aqui do fórum mesmo:
https://devforum.totvs.com.br/880-serializar-objeto-para-xml
Minha String está assim:
"<?xml version="1.0"?>
<NFLNFEENTITY>
<AITENSNF>
<NFLNFEITEMENTITY>
<CCFOP>5102</CCFOP>
<CCHAVE>35220702290277002922550010001376881136082394</CCHAVE>
<CCODFOR>30220331 </CCODFOR>
<CDESCPRODUTO>TESTE MONITOR </CDESCPRODUTO>
<CDESCRI>SAQUINHO PARA DESCARTE DE ABSORVENTE 10 REFIS COM 60 UNIDADES </CDESCRI>
<CNCM>39232110 </CNCM>
<CPEDIDO></CPEDIDO>
<CPRODUTO>000000000000028</CPRODUTO>
<CUNIDADE_MEDIDA>CX</CUNIDADE_MEDIDA>
<CVALOR_TOTAL>144.95</CVALOR_TOTAL>
<CVALOR_UNIDADE>144.95</CVALOR_UNIDADE>
<NCOD_FCI> </NCOD_FCI>
<NITEM>0001</NITEM>
<NQUANT_ITENS>1</NQUANT_ITENS>
</NFLNFEITEMENTITY>
</AITENSNF>
<CNOME>fornecedorA </CNOME>
<NCNPJ>123456789101112</NCNPJ>
<NNUMNF>35220702290277002922550010001376881136082394</NNUMNF>
</NFLNFEENTITY>"
Utilizo o exemplo que está no link para pegar o conteúdo e gerar minha string.
Agora o trecho que utilizo para deserializar, string para objeto XML:
If MsgYesNo("Deseja Salvar as Alterações? ","Salvar")
cSerializa := oNfeEntity:toXml() //Método que está no Link -> toXml()
MsgInfo(cSerializa) //Apresenta todos os dados do XML
//Gera o Objeto XML
oXml := XmlParser( cSerializa, "_", @cError, @cWarning )
If (oXml == NIL )
MsgStop("Falha ao gerar Objeto XML : "+cError+" / "+cWarning)
Return
Endif
cTeste := Alltrim(oXml:_NFLNFEENTITY:_AITENSNF:_NFLNFEITEMENTITY:_CDESCRI:TEXT)
MsgInfo(cTeste)
EndIf
Alguns pontos que preciso entender da Deserialização:
Primeiro ponto, não sei se a deserialização está correta.
Segundo ponto, não consigo apresentar nenhum dado da String (cTeste) seguindo o caminho das tags XML.