Versão atual:

Deserialização objeto XML ADVPL

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.

Versões (2):

Ver a versão formatada

Deserialização objeto XML ADVPL

Comentário

new question