Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
[Résolu] Comment utiliser le module XML Made Simple ?
#1
Citation :#~~~~~ DEBUT BLOC A NE PAS SUPPRIMER ~~~~~
#~ Version du CMS: 1.11.6
#~ Hébergeur / Soft : OVH
#~ Informations Système :
#~ ----------------------------------------------
#~ Cms Version: 1.11.6
#~ Installed Modules:
#~ CMSMailer: 5.2.1
#~ CMSPrinting: 1.0.4
#~ FileManager: 1.4.3
#~ MenuManager: 1.8.5
#~ MicroTiny: 1.2.5
#~ ModuleManager: 1.5.5
#~ News: 2.12.12
#~ Search: 1.7.8
#~ ThemeManager: 1.1.8
#~ TinyMCE: 2.9.12
#~ LinkMgr: 1.5.1
#~ Captcha: 0.4.6
#~ FormBuilder: 0.7.3
#~ XMLMadeSimple: 0.1.2
#~ Config Information:
#~ php_memory_limit:
#~ process_whole_template:
#~ output_compression:
#~ max_upload_size: 64000000
#~ url_rewriting: mod_rewrite
#~ page_extension:
#~ query_var: page
#~ image_manipulation_prog: GD
#~ auto_alias_content: true
#~ locale:
#~ default_encoding: utf-8
#~ admin_encoding: utf-8
#~ set_names: true
#~ Php Information:
#~ phpversion: 5.2.17
#~ md5_function: On (Vrai)
#~ gd_version: 2
#~ tempnam_function: On (Vrai)
#~ magic_quotes_runtime: Off (Faux)
#~ E_STRICT: 0
#~ memory_limit: 128M
#~ max_execution_time: 120
#~ output_buffering: On
#~ safe_mode: Off (Faux)
#~ file_uploads: On (Vrai)
#~ post_max_size: 64M
#~ upload_max_filesize: 64M
#~ session_save_path: /tmp (1777)
#~ session_use_cookies: On (Vrai)
#~ xml_function: On (Vrai)
#~ xmlreader_class: On (Vrai)
#~ Server Information:
#~ Server Api: cgi
#~ Server Db Type: MySQL (mysqli)
#~ Server Db Version: 5.1.49
#~ Server Db Grants: Impossible de trouver un privilège "GRANT ALL". Cela peut signifier que vous pourriez avoir des problèmes pour installer ou retirer des modules, ou encore l 'ajout et la suppression d'éléments, y compris les pages.
#~ ----------------------------------------------
#~~~~~ FIN BLOC A NE PAS SUPPRIMER ~~~~~



Bonjour,

J'essaie d'utiliser le module XML Made Simple mais je sèche un peu... Si quelqu'un utilise, ça m'aiderait beaucoup.

Je récupère un feed qui ressemble à ça si je l'affiche dans mon navigateur (Firefox) :

<slots>
<slot start="2013-05-23 16:00:00" finish="2013-05-23 17:00:00">
<title id="133401">Ici_Le_Titre</title>
<count>1</count>
</slot>
</slots>

Dans une page de mon site je mets : {XMLMadeSimple feed_id="1"}

Avec l'aide du template par défaut de XMLMadeSimple, ça m'affiche :

SimpleXMLElement Object
(
[slot] => SimpleXMLElement Object
(
[@attributes] => Array
(
[start] => 2013-05-23 16:00:00
[finish] => 2013-05-23 17:00:00
)

[title] => Ici_Le_Titre
[count] => 1
)

)
1

Jusque là tout bien... mais comment faire pour récupérer simplement la valeur de [start] qui est la seule valeur qui m'intéresse ?

J'ai essayé différentes choses, dont {XMLMadeSimple feed_id="1" action="search" xpath="/slots/slot"} mais dans ce cas, ça ne renvoie plus rien du tout... ni avec {$xml|var_dump} dans le template default, ni avec {$xml|print_r}

Donc je sèche grave... :/ Rien trouvé jusque là sur le forum ou sur Gueugueule qui puisse m'aider.

Par avance merci beaucoup pour toute suggestion Smile
#2
Je fais un petit up... personne qui n'utilise ce module ?
#3
désolé de ma réponse inutile mais non je n'utilise pas ce module Sad
#4
Bonjour, merci pour la réponse "même inutile" qui me permet de voir que quelqu'un a tenté de s'intéresser à mon problème Big Grin

A force de chercher sur le net et de tester des trucs j'ai enfin trouvé un moyen de récupérer des valeurs avec XMLMadeSimple et je vais donc me répondre à moi-même, ça rendra surement service à quelqu'un.

Dans la page, pour appeler le module XMLMadeSimple :

{XMLMadeSimple feed_id="1" template="agenda"}

Dans le template, pour afficher l'intégralité du XML reçu :
<pre>{$xml|var_dump}</pre>

Ce qui dans mon cas, donne ça :

SimpleXMLElement Object
(
[slot] => SimpleXMLElement Object
(
[@attributes] => Array
(
[start] => 2013-05-23 16:00:00
[finish] => 2013-05-23 17:00:00
)

[title] => Ici_Le_Titre
[count] => 1
)

)

Dans le template, pour extraire des données de $xml qui m'intéressent (dans mon cas, start et title):

<pre>{$start= (string) $xml->slot['start']}
{$start}
</pre>

<pre>{$title= (string) $xml->slot->title}
{$title}
</pre>

A noter que je n'ai qu'un seul enregistrement dans mon XML, sinon il faudrait utiliser une boucle foreach pour se déplacer dans les résultats.

Il y a probablement d'autres moyens de faire ça... Je n'ai jamais réussi à utiliser xpath comme indiqué dans la doc du module, qui gagnerait grandement à être... étoffée d'exemples Wink

Au final, vu le peu de services que me rend le module XMLMadeSimple (juste me renvoyer du XML à partir d'une URL) je pense que je vais probablement me développer mon petit module "home-made" - ce qui aura l'immense avantage que je comprenne comment ça fonctionne.

Si toutefois quelqu'un a des suggestions sur ce module je reste preneur, l'avantage du CMS étant de ne pas avoir à réinventer la roue à chaque fois Smile Smile Smile
#5
ton traitement me parait tout a fait correct, par précaution j’inclurais de suite la boucle foreach Smile


Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)