ParamBox, Validar um XML

Olá Pessoal,

Queria um exemplo de como posso validar um arquivo XML usando o ParamBox.

Abaixo está as validações que preciso fazer.

  • Validar se o arquivo existe;
    • Validar se é um XML;
    • Validar se é um XML de uma nota fiscal;

Tenho uma função que tem que fazer as validações

User function zParBox()

Local cError := ""

Local cWarning := ""

Local oXml := NIL Local cXmlFile := "nfe.xml" // Arquivo XML

Local cDirect := GetTempPath()

//Se o arquivo existir

IF File(cDirect+cXmlFile)

//Gera o Objeto XML

oXml := XmlParserFile(cXmlFile,"_", @cError, @cWarning)

If (oXml == NIL )

MsgStop("Falha ao gerar Objeto XML : "+cError+" / "+cWarning)

Endif

// Mostrando a informação do Node

MsgInfo(oXml:_IDE:_cUFE:Text,"Cliente")

ENDIF

Return oXml

compartilhar
  • Eduarda, pelo que vi é porque você buscou o arquivo usando cDirect+cXmlFile e na hora de abrir usou só cXmlFile. Deve ter sido só isso.

    Cirilo Rocha   06 de May de 2022
  • Olá Cirilo, obrigada pelo toque, eu tenho uma dúvida, caso eu queira colocar um diretório diferente do Parser(system) do protheus. Exemplo: Local cXmlFile := "nfe.xml" Local cDirect := "D:\PastaXml\" If File(cDirect+cXmlFile) Dessa forma vai funcionar?, ou o arquivo sempre tem que estar na pasta do Protheus?

    Eduarda Menezes   08 de May de 2022
  • Pode sim ser colocado qualquer diretório que o smartclient tenha acesso (se você estiver executando via smartclient). Agora se estiver executando via Job no appserver realmente somente as pastas dentro do Protheus_Data estarão acessíveis.

    Cirilo Rocha   09 de May de 2022
  • Ah entendi. Muito Obrigada, Abraço.

    Eduarda Menezes   09 de May 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 xml ou faça a sua própria pergunta.