Validar Existe TAG XML

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?

Bom 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

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:

https://tdn.totvs.com/display/tec/AttlsMemberOf

https://tdn.totvs.com/display/tec/XmlParser

Obrigado, funcionou perfeito.