PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV Mobile 2024 → Search data on all nodes of an xml - Busca dados em todos os nós de um xml
Search data on all nodes of an xml - Busca dados em todos os nós de um xml
Débuté par adrianoboller, 24 nov. 2014 12:19 - Aucune réponse
Membre enregistré
3 657 messages
Popularité : +175 (223 votes)
Posté le 24 novembre 2014 - 12:19
Procedure WS_BuscaDadosLoop(LOCAL XmlInfo, LOCAL TAGini, LOCAL TAGfim, LOCAL DebugSN)


resultado, sResultadoint is string = ""

x, posini, posfim, TamanhoIni, TamanhoFim, Tamanho is int = 0

TamanhoIni = Length(TAGini)

TamanhoFim = Length(TAGfim)

//if PositionOccurrence(TAGfim,"/",firstRank,FromEnd) = 0 THEN
// info("Tag Final não possui barra /, verifique...",TAGfim)
//end

//Primeiro Registro
posini = PositionOccurrence(XmlInfo, TAGini, firstRank, FromEnd) + TamanhoIni
posfim = PositionOccurrence(XmlInfo, TAGfim, firstRank, FromEnd)
Tamanho = posfim - posini
resultado = Clip(Middle(XmlInfo, posini, Tamanho))

IF DebugSN = "S"
Info(resultado,1)
END

x = 1

//Próximos Registros
LOOP

x += 1

IF XmlInfo <> "" AND posini > 0 AND posfim > 0 THEN

posini = PositionOccurrence(XmlInfo, TAGini, nextRank, FromEnd) + TamanhoIni
posfim = PositionOccurrence(XmlInfo, TAGfim, nextRank, FromEnd)
Tamanho = posfim - posini
resultado += "; " + Clip(Middle(XmlInfo, posini, Tamanho))
IF DebugSN = "S"
Info(resultado,x)
END

END

IF posini = 0 OR posfim = 0 //or resultado <> EOT // [] caixinha estranha é EOT
BREAK
END

END

x -= 1

resultado = Clip(Middle(resultado,1,Length(resultado)-2))

resultado += " Qtde: " + x

resultado = Clip(Upper(XMLRemoveAcentos(resultado)))


RESULT(resultado)