Bom dia, teoricamente quando importo o xml e ele possui apenas um item ele vem como string e quando tem mais de um item vem como array, e a validação seria assim:
If Valtype('oXml:_nfeProc:_NFe:_InfNfe:_DET[_nX]') == 'A' nItens := Len(oXml:_nfeProc:_NFe:_InfNfe:_det) else XmlNode2Arr(oXml:_nfeProc:_NFe:_InfNfe:_det,"_det") nItens := Len(oXml:_nfeProc:_NFe:_InfNfe:_det) Endif
Devo estar validando errado por que sempre retorno valtype == 'C'