Page 1 sur 2

Parser XML prochain Bus

MessagePublié: 06 Octobre 2015, 12:22
par ethan92
Bonjour,

A partir d'un lien généré grâce à vos services, je cherche à parser la page obtenue en affichant l'horaire du prochain bus.

Mon lien : http://data.bordeaux-metropole.fr/wps?key=[MACLE]&SERVICE=WPS&VERSION=1.0.0&REQUEST=EXECUTE&IDENTIFIER=SV_HORAI_A&DATAINPUTS=filter=%3CFilter%3E%3COr%3E%3CPropertyIsEqualTo%3E%3CPropertyName%3ERS_SV_ARRET_P%3C/PropertyName%3E%3CLiteral%3E1113%3C/Literal%3E%3C/PropertyIsEqualTo%3E%3CPropertyIsEqualTo%3E%3CPropertyName%3ERS_SV_ARRET_P%3C/PropertyName%3E%3CLiteral%3E1112%3C/Literal%3E%3C/PropertyIsEqualTo%3E%3C/Or%3E%3C/Filter%3E;maxfeatures=10

J'utilise des méthodes Actionscript afin de parser le XML.

Pourriez vous m'éclairer ?
Merci,

Re: Parser XML prochain Bus

MessagePublié: 06 Octobre 2015, 14:51
par Sébastien Cart-Lamy
Bonjour,
Votre requête travaille sur la couche SV_HORAI_A. Vous avez donc avec votre requête TOUS les passages de la journée sur un arrêt donné. Il vous reste à faire la jointure sur la course, et éventuellement sur la ligne.

Pour vous simplifier la vie, vous avez une procédure WPS qui permet de donner les prochains passages à un arrêt : saeiv_passages
Ces procédures ne sont pas des tables de données (car elles prennent des paramètres obligatoires en entrée). Elle ne sont donc pas listées dans WxSQuery.

Vous pouvez tester cette procédure avec le plugin QGIS que nous mettons à disposition : http://data.bordeaux-metropole.fr/forum/viewtopic.php?f=3&t=125

Vous avez la liste des procédure WPS disponible sur la documentation du SAEIV : http://data.bordeaux-metropole.fr/docs/manuel_saeiv.pdf

Re: Parser XML prochain Bus

MessagePublié: 08 Octobre 2015, 11:44
par ethan92
Bonjour,

Merci pour votre retour. J'ai pu installer le logiciel ainsi que le plugin.
En utilisant "saeiv_arret_passages" j'affiche une table avec les prochaines passages de l'arrêt souhaité.

Comment récupérer un lien de type xml me permettant de lister ces informations ?

Merci,

Re: Parser XML prochain Bus

MessagePublié: 08 Octobre 2015, 12:01
par ethan92
Je travaille sur ce type d'url : http://data.bordeaux-metropole.fr/wps?k ... s=GID=1717

Cela vous semble correct ?

Re: Parser XML prochain Bus

MessagePublié: 08 Octobre 2015, 13:20
par Sébastien Cart-Lamy
Vous êtes sur la bonne voie.

La requête renvoie bien tous les prochains passages dans les prochaines 30 min sur l'arrêt de GID 1717.

Veuillez noter qu'il existe des paramètres facultatifs : start_time et duration.
Ces paramètres sont pour le moment inopérants. Ils devraient être actifs dans les jours à venir.

Re: Parser XML prochain Bus

MessagePublié: 14 Octobre 2015, 16:57
par ethan92
Bonjour,

J'ai bien réussi à afficher ce que je souhaitais avec ce type d'url : le prochain tram à passer et sa direction.

Par contre un nouveau problème est apparu : lorsque je lance mon animation une première fois, il récupère le prochain horaire. Lorsque je le relance 5,10, 15min ... après il m'affiche toujours la même info.
Je suis obligé de fermer mon application et de la relancer pour que ça fonctionne...

Je pencherais pour un problème de cache : avez vous déjà rencontré ce type de problème ?

Merci pour votre aide,

Re: Parser XML prochain Bus

MessagePublié: 15 Octobre 2015, 08:53
par Sébastien Cart-Lamy
Pouvez-vous décrire votre architecture : technologie, plateforme, proxy, mode de récupération des données... ?

Re: Parser XML prochain Bus

MessagePublié: 15 Octobre 2015, 09:29
par ethan92
J'utilise de l'ActionScript 3. Le résultat obtenu est en local pour le moment (iso une fois en ligne sur un serveur).
Je récupère les données via un URLrequest.

Re: Parser XML prochain Bus

MessagePublié: 15 Octobre 2015, 09:42
par Sébastien Cart-Lamy
Je pense aussi qu'il y a un cache sur votre client.

Ce que vous pouvez faire, c'est mettre du sel dans chaque requête (en utilisant le timestamp unix courant par exemple). Comme ça le cache sera obligé de recharger la page.

Re: Parser XML prochain Bus

MessagePublié: 15 Octobre 2015, 10:39
par ethan92
Effectivement : ça semble fonctionner maintenant en ajoutant ce type d'opération dans ma requête.
Merci beaucoup pour votre aide.