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.

compartilhar
  • Eduarda, você tem um objeto XML e quer fazer ele virar uma string? Ou você tem uma string e quer fazer ele virar um objeto? Caso você já possua um objeto XML, como ele foi gerado?

    Daniel Mendes   16 de Dec de 2022
  • Olá Daniel, eu tenho uma String e quero que ele vire um objeto

    Eduarda Menezes   16 de Dec de 2022
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do TOTVS DevForum!

1 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags advpl mvc ou faça a sua própria pergunta.