Bonjour,
Je rencontre un problème avec la méthode ParseUrl.
Mon application utilise des appel XML et fonctionne sans problème depuis 6 mois ( environ 2500 transferts par mois).
Depuis quelques semaines, quelque chose a changé sur le serveur XML et mon ParseUrl fait des parse 'corrects' mais vides !!
Le phénomène survient sur un certain nombre de postes, pas tous et de manière complètement étatique . Côté serveur, rien n'a semble-t-il été changé récemment...(Du point de vue du développeur de la routine qui génère le XML)
Il semblerai que plus le fichier est important, plus le problème se pose (630 éléments actuellement).
J'ai réussi à choper un poste ou le problème se fait sans cesse, et j'ai tenté la méthode getnettext+parsestring qui semble fonctionner sans soucis. Cela veut-il dire que je n'ai plus qu'a tout reprogrammer sans comprendre ce qui est arrivé, ou quelqu'un a-t-il déjà eu ce soucis et trouvé une solution ?
Merci d'avance des conseils
Loïc
Nos formations à venir :
ParseURL
Débuté par loicremy, avril 12 2011 01:11
#1
Posté 12 avril 2011 - 01:11
#2
Posté 12 avril 2011 - 02:40
je n'ai jamais utilisé parseurl (uniquement getnettext+parsestring), mais en regardant la doc, il est bien stipulé que la commande est asynchrone. Comme tu ne le précises pas, est-ce que tu passes bien par un doneparsing() pour vérifier que tout a bien été traité ?
C'est ce qui me vient à l'esprit, vu que ton problème arrive avec une augmentation de la taille du fichier xml. Et donc que le traitement est maintenant peut être suffisamment long pour provoquer le problème.
C'est ce qui me vient à l'esprit, vu que ton problème arrive avec une augmentation de la taille du fichier xml. Et donc que le traitement est maintenant peut être suffisamment long pour provoquer le problème.
#3
Posté 12 avril 2011 - 04:34
Voui, je lance l'appel du ParseUrl, et 2 images plus loin, j'ai :
global gParserObject
on exitFrame me
if gParserObject.doneParsing() = 0 then
go to the frame
end if
end
Puis sur l'image n+2, je traite le contenu des noeuds. Le truc, c’est que c'est aléatoire, de 0 à 200 éléments sans raison.
Le plus fort, c'est que sur la même box internet, sur mon autre machine, ça marche impec, et je ne trouve pas la différence qui fait ça ??
J'ai plein de cas ou ça marche, et d'autres non...
global gParserObject
on exitFrame me
if gParserObject.doneParsing() = 0 then
go to the frame
end if
end
Puis sur l'image n+2, je traite le contenu des noeuds. Le truc, c’est que c'est aléatoire, de 0 à 200 éléments sans raison.
Le plus fort, c'est que sur la même box internet, sur mon autre machine, ça marche impec, et je ne trouve pas la différence qui fait ça ??
J'ai plein de cas ou ça marche, et d'autres non...
#4
Posté 06 mai 2011 - 03:55
suite à plusieurs plantage de parses j'ai opté pour cette methode avec l'objet flash et ça va beaucoup mieux depuis :
-- utilisation flash parser pour eviter plantages
obj= newObject("XML")
obj.ignoreWhite=TRUE
obj.parseXML(vXML)
x = new(xtra "xmlparser")
x.ignoreWhiteSpace(true)
x.parseString(obj.toString())
put "x.parseString(obj.toString()) "
---------------
errorString = x.getError()
if not voidP(errorString) then
put errorString
else
xList = x.makeList()
put "xList = "& xList
end if
-- utilisation flash parser pour eviter plantages
obj= newObject("XML")
obj.ignoreWhite=TRUE
obj.parseXML(vXML)
x = new(xtra "xmlparser")
x.ignoreWhiteSpace(true)
x.parseString(obj.toString())
put "x.parseString(obj.toString()) "
---------------
errorString = x.getError()
if not voidP(errorString) then
put errorString
else
xList = x.makeList()
put "xList = "& xList
end if
1 utilisateur(s) li(sen)t ce sujet
0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)









