| |
|
Voir le sujet précédent :: Voir le sujet suivant
|
| Auteur |
Message |
| |
|
FrenchKiss WRInaute occasionnel

Inscrit le: 06 Oct 2004 Messages: 187
|
Posté le : Sam Juil 16, 2005 15:35 Sujet du message: Mettre en forme un fichier XML récupéré dynamiquement |
|
|
Hello à tous
Je récupère un fichier XML généré par Amazon, et je souhaiterais savoir COMMENT je peux le mettre en forme.
J'ai commencé à chercher, et ce que j'ai trouvé me laisse à penser qu'il faut déclarer soit des styles CSS, soit un fichier XST, tous deux DANS le fichier XML. Or moi, le récupérant chez Amazon, je ne peux modifier celui-ci.
Qqun peut-il m'éclairer ? |
|
| |
|
 |
aladdin WRInaute passionné

Inscrit le: 29 Avr 2005 Messages: 723
|
Posté le : Sam Juil 16, 2005 16:15 Sujet du message: Mettre en forme un fichier XML récupéré dynamiquement |
|
|
bein suffit de créer un php qui lit ce fichier et le regenère avec en y incluant les styles necessaires ...
après il faut voir si t'a le droit de le faire ou pas  |
|
| |
|
 |
FrenchKiss WRInaute occasionnel

Inscrit le: 06 Oct 2004 Messages: 187
|
Posté le : Sam Juil 16, 2005 16:26 Sujet du message: Mettre en forme un fichier XML récupéré dynamiquement |
|
|
arf... j'ai aucune idée de comment faire tout ça :/
Ben je suis pas dans la mouise moi
merci quand meme  |
|
| |
|
 |
playentry WRInaute occasionnel

Inscrit le: 26 Jan 2005 Messages: 209
|
Posté le : Sam Juil 16, 2005 17:20 Sujet du message: Mettre en forme un fichier XML récupéré dynamiquement |
|
|
Heu... Un peu hors sujet... Ou est-ce que tu l'as trouvé ce fichier xml généré par amazon ? Ça m'intréresse... Sinon, pour ce qui est de ton prob... J'en ai aucune idée... Il doit certainement exister des tutos sur le web...  |
|
| |
|
 |
epsilon74 WRInaute occasionnel

Inscrit le: 17 Mar 2004 Messages: 217 Localisation: Haute Savoie
|
Posté le : Sam Juil 16, 2005 17:52 Sujet du message: Mettre en forme un fichier XML récupéré dynamiquement |
|
|
le flux xml est proposé par Amazon dans les webservices.
Par contre :
"Utiliser notre plateforme Webservices nécessite des connaissances dans le domaine du développement de sites internet. Il est par exemple préférable d'avoir des connaissances sur SOAP, HTML, et Perl ou d'autres programmes de langage, comme XML ou XSLT, et d'être capable d'écrire et de travailler avec CGI scripts (ou mod_perl ou équivalent) et Network, qui facilite le transfert de données.
"
Sinon, le plus simple (mais pas le plus "propre") est de récuperer le flux, le parser et l'integrer en base de donnée. Puis tu generes tes pages depuis cette base. Mais avec des gros flux, ça peut devenir tres lourd.
Le mieux (plus propre mais beaucoup plus complexe à mon avis) est XSLT.
Cherches un peu, il y a des tuto sur le net (j'ai plus les adresses en tête) sur comment parser un flux XML. |
|
| |
|
 |
FrenchKiss WRInaute occasionnel

Inscrit le: 06 Oct 2004 Messages: 187
|
Posté le : Sam Juil 16, 2005 17:52 Sujet du message: Mettre en forme un fichier XML récupéré dynamiquement |
|
|
C'est leur programme Amazon Web Services
Ils te permettent de générer un XML rien qu'en entrant un ISBN, par exemple.
Je me disais que je pourrais générer une fiche livre rien qu'avec un ISBN, mais il faudrait pour cela pouvoir transformer le XML en HTML.
Et je sais pas faire :/
J'ai bien trouvé des tutos, mais il faut pour cela déclarer un fichier XST dans le XML, et comme je ne peux pas retoucher celui-ci.. et que je ne sais pas le réécrire, je suis coincé :/ |
|
| |
|
 |
FrenchKiss WRInaute occasionnel

Inscrit le: 06 Oct 2004 Messages: 187
|
Posté le : Sam Juil 16, 2005 18:02 Sujet du message: Mettre en forme un fichier XML récupéré dynamiquement |
|
|
espilon
J'ai effectivement trouvé de tels tutos, par exemple ici :
http://www.asp-php.net/tutorial/xml/index.php
Mais ces cours supposent que tu es le propriétaire du flux XML, et que donc, tu peux y rajouter une petite ligne... Dans mon cas, je ne peux pas :/
Donc je suppose qu'effectivement, il va me falloir l'aide d'un développeur avec + de bagages que moi, parce que autant je suis capable de bidouiller, là c'est déjà plus complexe. Dommage  |
|
| |
|
 |
French Fred WRInaute impliqué

Inscrit le: 12 Fév 2004 Messages: 264 Localisation: Durban - Kwazulu Natal (Afrique du sud)
|
|
| |
|
 |
ecocentric WRInaute accro

Inscrit le: 10 Fév 2004 Messages: 3262 Localisation: Mons
|
Posté le : Sam Juil 16, 2005 18:12 Sujet du message: Mettre en forme un fichier XML récupéré dynamiquement |
|
|
C'est surement pas du grand art (le parsage du XML est ici assez... basique) mais ça marche bien.
Utilisé ici :
http://localhost/hellawaits/articles/fozzi-all-that-remains-20050505.php
ou encore
http://www.voipfr.org/boutique-voip.php (mais sans cache, donc lent).
Si vous modifiez le code, je suis bien sûr intéressé par les patchs / ajouts de fonctionnalités.
J'ai supprimé l'exemple de code. Il est disponible gratuitement sur http://www.netoscope.org/scripts.php , où seront centralisées les contributions et modifications. Le code est diffusé sous licence de logiciel libre (a priori, licence CPL).
Dernière édition par ecocentric le Mer Juil 20, 2005 12:14; édité 1 fois |
|
| |
|
 |
FrenchKiss WRInaute occasionnel

Inscrit le: 06 Oct 2004 Messages: 187
|
Posté le : Sam Juil 16, 2005 18:19 Sujet du message: Mettre en forme un fichier XML récupéré dynamiquement |
|
|
Merci à vous deux
Ecocentric, ça me parait un peu touffu, est ce que ce serait abuser de ton amabilité que de te demander un rapide commentaire sur les fonctions qui constituent ta class ?
Parce que j'ai regardé, je vois pas comment les mettre en oeuvre (bon en mm temps, j'ai des petits yeux aujourd'hui, trop cherché / lu de trucs sur le XML, j'en peux plus). |
|
| |
|
 |
ecocentric WRInaute accro

Inscrit le: 10 Fév 2004 Messages: 3262 Localisation: Mons
|
Posté le : Sam Juil 16, 2005 18:29 Sujet du message: Mettre en forme un fichier XML récupéré dynamiquement |
|
|
| FrenchKiss a écrit: |
Merci à vous deux
Ecocentric, ça me parait un peu touffu, est ce que ce serait abuser de ton amabilité que de te demander un rapide commentaire sur les fonctions qui constituent ta class ?
Parce que j'ai regardé, je vois pas comment les mettre en oeuvre (bon en mm temps, j'ai des petits yeux aujourd'hui, trop cherché / lu de trucs sur le XML, j'en peux plus). |
| Code: |
<?php
include "mon fichier PHP avec l'objet Amazon";
function display_books ($aws, $affid, $asincode)
{
for ($i=0; $i<count($asincode); $i++)
{
$asin = $asincode[$i];
$text = show_book_asin ($aws, $affid, $asin);
if ($text!="Error")
echo $text;
}
}
?>
<?php
$aws = new AmazonWs;
$aws->subscriptionID = "TA CLEF AMAZON WS";
$affid = "TON ID AFFILIE AMAZON";
?>
|
Voili voilou...
display_books ($aws, $affid, $asincode) prend un objet (celui de mon post précédent, ton numéro d'affilié Amazon et un ASIN.
Il y a moyen d'obtenir une liste de bouquin à partir d'un mot-clef en utilisant "search_by_keyword" plutôt que "show_book_asin".
Je pourrais t'aider lundi si tu as un problème (j'ai d'autres codes sur le côté, il faudrait que je recentralise une fois et que je le diffuse). |
|
| |
|
 |
FrenchKiss WRInaute occasionnel

Inscrit le: 06 Oct 2004 Messages: 187
|
Posté le : Sam Juil 16, 2005 18:44 Sujet du message: Mettre en forme un fichier XML récupéré dynamiquement |
|
|
C'est redoutable, merci beaucoup pour ton intervention, que je qualifierais de divine si j'étais porté sur la chose
MERCI !
En revanche, la fonction display_books semble coincer quelque part : dès que je la mets en oeuvre, je me retrouve avec une page blanche, source vide.
Si je la supprime, et appelle directement
| Code: |
| echo display_books ($aws, $affid, $asincode); |
, ça marche impeccable.
Au passage, j'ai constaté que niveau présentation, ça se passait DANS la classe. C'est pas joli joli tout ça
je vais essayer de déméler ça, et si j'arrive à quelque chose de plus propre et plus flexible, je te le ferai savoir dans ce topic, ok ?
Merci encore et bon week end. |
|
| |
|
 |
ecocentric WRInaute accro

Inscrit le: 10 Fév 2004 Messages: 3262 Localisation: Mons
|
Posté le : Sam Juil 16, 2005 19:00 Sujet du message: Mettre en forme un fichier XML récupéré dynamiquement |
|
|
| FrenchKiss a écrit: |
Au passage, j'ai constaté que niveau présentation, ça se passait DANS la classe. C'est pas joli joli tout ça  |
En effet. J'espère que mon prof. d'info ne l'a pas vu .
| FrenchKiss a écrit: |
je vais essayer de déméler ça, et si j'arrive à quelque chose de plus propre et plus flexible, je te le ferai savoir dans ce topic, ok ?
|
Bonne idée !
| FrenchKiss a écrit: |
Merci encore et bon week end. |
De rien . |
|
| |
|
 |
FrenchKiss WRInaute occasionnel

Inscrit le: 06 Oct 2004 Messages: 187
|
Posté le : Sam Juil 16, 2005 20:07 Sujet du message: Mettre en forme un fichier XML récupéré dynamiquement |
|
|
Hop là, la même fonction, mais au format XHTML, pour permettre n'importe quelle mise en forme avec CSS.
| Code: |
function show_book_asin ($aws, $affid, $asin)
{
$aws->itemtype = "Books";
if ($aws->search_by_asin ($asin)==true)
{
$temp = "<div id=\"".$asin."\" class=\"livre\">";
for ($i=0; $i<$aws->recordcount; $i++)
{
if ($aws->item[$i]->mediumimage_url)
$temp .= "<div class=\"couverture\"><a href=\"http://www.amazon.fr/exec/obidos/ASIN/$asin/$affid\" target=\"blank\"><img src='" . $aws->item[$i]->mediumimage_url . "' width='" . $aws->item[$i]->mediumimage_width . "' height='" . $aws->item[$i]->mediumimage_height . "' border='0'></a></div>\n";
$temp .= "<div class=\"texte\"><div id=\"titre\">" . $aws->item[$i]->title . "</div><div class=\"auteur\">par " . $aws->item[$i]->author . " chez " . $aws->item[$i]->publisher . "</div>
<div class=\"prix\">Prix : " . $aws->item[$i]->amount . " " . $aws->item[$i]->currencycode . " (<a href=\"http://www.amazon.fr/exec/obidos/ASIN/$asin/$affid\" target=\"blank\">commander</a>)</div></div>\n";
}
$temp .= "</div>";
}
else
$temp = $aws->error;
return $temp;
} |
Remarquez que j'ai modifié la fonction pour qu'elle affiche la miniature de taille moyenne.
Je pense encore la modifier de mon coté, pour permettre à mes users de rajouter leurs commentaires sur le livre affiché. |
|
| |
|
 |
FrenchKiss WRInaute occasionnel

Inscrit le: 06 Oct 2004 Messages: 187
|
Posté le : Dim Juil 17, 2005 0:57 Sujet du message: Mettre en forme un fichier XML récupéré dynamiquement |
|
|
Par contre, quand $asincode est un tableau, la fonction me renvoie une erreur, et je n'arrive pas à voir pkoi.
| Code: |
include "includes/libaws.php";
function display_books ($aws, $affid, $asincode)
{
for ($i=0; $i<count($asincode); $i++)
{
$asin = $asincode[$i];
$text = show_book_asin ($aws, $affid, $asin);
if ($text!="Error") { echo $text; }
}
} |
| Code: |
$aws = new AmazonWs;
$aws->subscriptionID = "XXXXXXXXXXXX";
$affid = "xxxxxxxxxxx";
$asincode = array("2876918749","2710116332","2710112825","2100052896");
echo show_book_asin ($aws, $affid, $asincode); |
|
|
| |
|
 |
| |
|
|
|
|
Autres sujets de discussion :
Définitions :
- SpeedXML
- XSL (eXtensible Stylesheet Language)
- RSS
- XSD (XML Schema Definition)
- DTD (Document Type Definition)
|
|