Estou desenvolvendo um código para importar xml do despachante, preciso validar se as TAGs existem, já tentei usar alguns comandos mas sem sucesso, XmlChildEx e valtype. Existe alguma função ou código para validar a existência?
Estou desenvolvendo um código para importar xml do despachante, preciso validar se as TAGs existem, já tentei usar alguns comandos mas sem sucesso, XmlChildEx e valtype. Existe alguma função ou código para validar a existência?
Você pode usar a função AttIsMemberof no objeto gerado pela função xmlparser a partir de um string com o xml recebido.
O trecho abaixo cria o objeto a partir do string _cxml e valida se existe a tag BORGS e se existir valida dentro da tag BORGS existe a tag DETALHES.
_cerror := ""
_cWarning := ""
_OXML := XmlParser(_cxml, "_", @_cError, @_cWarning )
If empty(_cerror)
If AttIsMemberOf(_OXML,"_BORGS")
If AttIsMemberOf(_OXML:_BORGS,"_DETALHE")
Referências:
Obrigado, funcionou perfeito.
— Luciano A.Minari 06 de Jan de 2022Bom dia!
A validação é feita com as duas funções que você informou. Existe também a classe TXmlManager mas seu uso é mais complexo.
Segue exemplo utilizando as funções XmlChildEx e ValType:
If(ValType(XmlChildEx(oSoapBody, '_SOAP_ENV_FAULT')) == 'O')
oWsRet := oSoapBody:_SOAP_ENV_FAULT
EndIf