Formation par Olivier Duffez

Formation au référencement par Olivier Duffez, créateur de WebRankInfo !
Une formule efficace alliant théorie et pratique, avec une haute disponibilité des intervenants
Cette formule a déjà convaincu plusieurs centaines d'entreprises, pourquoi pas vous ?
Réservez vite votre place en ligne (convention possible pour imputer sur le budget formation)

Formation référencement Marseille

Problème lecture de fichier XML

Aller à la page 1, 2  Suivante
Poster un nouveau sujet Imprimer cette discussion    Forum -> Développement d'un site Web   Les dernières discussions de ce forum sont disponibles au format RSS
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
 
death83
WRInaute discret
WRInaute discret

Inscrit le: 07 Jan 2006
Messages: 90

URL permanente de ce messagePosté le : Dim Aoû 27, 2006 20:16    Sujet du message: Problème lecture de fichier XML

Salut a tous,

je suis en train d'essayer de lire un fichier XML (générer par le webservice d'amazon) en php mais je n'y arrive pas Crying or Very sad .

J'ai essayer le code suivant:

Code:


$xml=simplexml_load_file('test1.xml');
$xml->xpath('/ItemLookupResponse/Items/Item/Offers/Offer/OfferListing/Price/FormattedPrice');
$result = $xml->xpath('//FormattedPrice');
while(list( , $node) = each($result)) {
   echo '/a/b/c: ',$node,"\n";
}


?>


Ou test1.xml est ma page XML.

En fait ca marche si on prend les tag comme il sont afficher par firefox.
C'est à dire:
Citation:

<?xml version="1.0" encoding="UTF-8"?>
<ItemLookupResponse>
<Items>
<Item>
<Offers>
<Offer>
<OfferListing>
<Price>
<FormattedPrice>EUR 55,06</FormattedPrice>
</Price>
</OfferListing>
</Offer>
</Offers>
</Item>
</Items>
</ItemLookupResponse>


Mais si j'enregistre ma page XML depuis firefox le premier tag se modifie:


Citation:

<ItemLookupResponse xmlns="http://webservices.amazon.com/AWSECommerceService/2005-10-05">
<Items>
<Item>
<Offers>
<Offer>
<OfferListing>
<Price>
<FormattedPrice>EUR 55,06</FormattedPrice>
</Price>
</OfferListing>
</Offer>
</Offers>
</Item>
</Items>
</ItemLookupResponse>


Du coup ca ne marche plus.

Avez vous une idée qui me permettrais de résoudre se problème (ou d'arriver a lire mon fichier XML?
 
death83
obi
WRInaute occasionnel
WRInaute occasionnel

Inscrit le: 26 Juil 2006
Messages: 238
Localisation: Toulouse

URL permanente de ce messagePosté le : Dim Aoû 27, 2006 21:45    Sujet du message: Problème lecture de fichier XML

Tu es sûr que ta déclaration de namespace n'est pas dans le fichier original ? Ca m'étonnerait que ffox soit capable de trouver le bon ns à associer à ton XML par magie Wink
 
obi Visiter le site web du posteur
death83
WRInaute discret
WRInaute discret

Inscrit le: 07 Jan 2006
Messages: 90

URL permanente de ce messagePosté le : Dim Aoû 27, 2006 21:55    Sujet du message: Problème lecture de fichier XML

obi a écrit:
Tu es sûr que ta déclaration de namespace n'est pas dans le fichier original ? Ca m'étonnerait que ffox soit capable de trouver le bon ns à associer à ton XML par magie Wink


Comment ca?
 
death83
obi
WRInaute occasionnel
WRInaute occasionnel

Inscrit le: 26 Juil 2006
Messages: 238
Localisation: Toulouse

URL permanente de ce messagePosté le : Dim Aoû 27, 2006 22:27    Sujet du message: Problème lecture de fichier XML

C'est parti pour un peu de théorie sur XML ...
Code:
xmlns="http://webservices.amazon.com/AWSECommerceService/2005-10-05"


Cette directive spécifie l'espace de nommage xml (xmlns = XML Name SPace)
C'est ce qui garantit l'eXtensibilité du XML (qui veut dire eXtensible Mark-up Language), et permet de mélanger de façon valide plusieurs formats xml. Par exemple pour mélanger du html et du svg:

Code:
<ht:html xmlns="ht:http://www.w3.org/1999/xhtml" >
..
<ht:body xmlns="g:http://www.w3.org/2000/svg" >
<g:rect x="0" y="0" ... />
<ht:p>Paragraphe</ht:p>
</ht:body>


on colle l'étiquette ht au namespace html et g au namespace svg, et on peut mélanger les deux en préfixant lés éléments avec l'étiquette du namespace suivit de :
Comme on n'a pas envie d'écrire systématiquement toutes les étiquettes, si l'on ne met pas d'étiquette lors de la déclaration du namespace, comme c'est le cas dans ton fichier ou dans la pluspart des pages HTML, les éléments non préfixés par une étiquettes seront cherchés dans le ce namespace (appellé alors namespace par défaut)

L'URL du namespace est une chaine de carctères unique qui correspond à une DTD où à un schéma XML. Cette dernière déclare les éléments et attributs utilisables dans ce namespace.

Pour faire simple, dans ta deuxième citation, le namespace est bien celui d'amazon, il est normal qu'il précède l'utilisation du format XML d'amazon.

et ce n'est pas qqchose d'ajouté par ffox, car il ne peut pas en avoir connaissance si ce n'est pas spécifié dans le xml qu'il ouvre.

Désolé si tout ça est un peu technique et pas super bien expliqué, mais il faut dire que ce n'est pas simple Confused

Si tu as des doutes sur ce que fait ffox, crache plutôt ça dans un fichier sur ton serveur ...
 
obi Visiter le site web du posteur
death83
WRInaute discret
WRInaute discret

Inscrit le: 07 Jan 2006
Messages: 90

URL permanente de ce messagePosté le : Dim Aoû 27, 2006 22:46    Sujet du message: Problème lecture de fichier XML

C'est ce que j'ai fait.

Cette ligne je l'ai optenu en faisant enregistrer sous avec firefox.

Pourquoi mon code ne marche pas alors? Que dois-je faire?
 
death83
obi
WRInaute occasionnel
WRInaute occasionnel

Inscrit le: 26 Juil 2006
Messages: 238
Localisation: Toulouse

URL permanente de ce messagePosté le : Dim Aoû 27, 2006 22:50    Sujet du message: Problème lecture de fichier XML

Qu'est-ce qui ne marche pas exactement ?
 
obi Visiter le site web du posteur
death83
WRInaute discret
WRInaute discret

Inscrit le: 07 Jan 2006
Messages: 90

URL permanente de ce messagePosté le : Dim Aoû 27, 2006 22:56    Sujet du message: Problème lecture de fichier XML

Ba lorsque j'effetue mon code avec la requette sur le XML d'amazon je n'ai aucun résultat.

Alors que lorsque j'effectue mon code en utilisant une page (que j'ai crée) et qui contient les meme balise (mais sans les xmlns=) ca marche.

Tu veut que je copie la page générer et celle que j'ai fait?
 
death83
obi
WRInaute occasionnel
WRInaute occasionnel

Inscrit le: 26 Juil 2006
Messages: 238
Localisation: Toulouse

URL permanente de ce messagePosté le : Dim Aoû 27, 2006 23:14    Sujet du message: Problème lecture de fichier XML

Voui, juste un bout de chaque
 
obi Visiter le site web du posteur
death83
WRInaute discret
WRInaute discret

Inscrit le: 07 Jan 2006
Messages: 90

URL permanente de ce messagePosté le : Dim Aoû 27, 2006 23:22    Sujet du message: Problème lecture de fichier XML

Voila la page générer par amazon:

http://webservices.amazon.fr/onca/xml?Service=AWSECommerceService&AWSAccessK...

et le code qui marche chez moi:

Code:

<ItemLookupResponse>
   <Items>
        <Item>
         <Offers>
            <Offer>
               <OfferListing>
                  <Price>
                     <FormattedPrice>EUR 55,06</FormattedPrice>
                  </Price>
               </OfferListing>
            </Offer>
         </Offers>
        </Item>
   </Items>
</ItemLookupResponse>
 
death83
obi
WRInaute occasionnel
WRInaute occasionnel

Inscrit le: 26 Juil 2006
Messages: 238
Localisation: Toulouse

URL permanente de ce messagePosté le : Dim Aoû 27, 2006 23:30    Sujet du message: Problème lecture de fichier XML

Ouvre la page indiquée dans ffox -> bouton droit -> Code de la page -> Copier /Coller dans test2.xml

Arrives-tu à charger test2.xml ?
 
obi Visiter le site web du posteur
death83
WRInaute discret
WRInaute discret

Inscrit le: 07 Jan 2006
Messages: 90

URL permanente de ce messagePosté le : Lun Aoû 28, 2006 1:27    Sujet du message: Problème lecture de fichier XML

Ba ca renvoie rien du tout quand je fait ca. J'ai refait le lien car celui au dessus ne marchai pas (il n'y avait pas la balise que je voulais).

J'ai essayé avec celui la:
http://webservices.amazon.fr/onca/xml?Service=AWSECommerceService&AWSAccessK...
 
death83
death83
WRInaute discret
WRInaute discret

Inscrit le: 07 Jan 2006
Messages: 90

URL permanente de ce messagePosté le : Lun Aoû 28, 2006 13:12    Sujet du message: Problème lecture de fichier XML

Personne n'a d'idée? Sad
 
death83
Bacteries
WRInaute accro
WRInaute accro

Inscrit le: 27 Mai 2004
Messages: 1002
Localisation: France - Nantes

URL permanente de ce messagePosté le : Lun Aoû 28, 2006 15:11    Sujet du message: Problème lecture de fichier XML

Le namespace ne changera rien ton problème ne vient surement pas de là.

Et la balise de début c'est pour donner le type de doc ça ne sera pas pris en compte via un xpath.

Du coup c'est peut être ton chargement de fichier (depuis le site amazon) qui merde, regarde plus ton code PHP que le XML pour voir.

Déjà ça :
Code:

$xml->xpath('/ItemLookupResponse/Items/Item/Offers/Offer/OfferListing/Price/FormattedPrice');
$result = $xml->xpath('//FormattedPrice');

Tu fais une selection très précise mais tu l'enregistre pas et après tu prend un truc super générique (le "//"). l'erreur ne vient pas de là mais ça peut déjà être optimisé je pense.
 
Bacteries Visiter le site web du posteur
MagicYoyo
WRInaute accro
WRInaute accro

Inscrit le: 24 Mai 2004
Messages: 2185
Localisation: Montpellier

URL permanente de ce messagePosté le : Lun Aoû 28, 2006 15:21    Sujet du message: Problème lecture de fichier XML

Question con... simple XML est une classe PHP5, non ?
Est-elle supportée par ton hébergement ?
 
MagicYoyo Visiter le site web du posteur
death83
WRInaute discret
WRInaute discret

Inscrit le: 07 Jan 2006
Messages: 90

URL permanente de ce messagePosté le : Lun Aoû 28, 2006 16:03    Sujet du message: Problème lecture de fichier XML

MagicYoyo a écrit:
Question con... simple XML est une classe PHP5, non ?
Est-elle supportée par ton hébergement ?


Oui biensur, la je test en local avec WAMP mis en php 5.


Bacteries->

Actuellement mon code est:
Code:


$xml=simplexml_load_file('test2.xml');
$result = $xml->xpath('//FormattedPrice');
while(list( , $node) = each($result)) {
   echo 'Prix: ',$node,"\n";
}


le $xml->xpath('/ItemLookupResponse/Items/Item/Offers/Offer/OfferListing/Price/FormattedPrice'); était en commentaire.

Le chargement de fichier doit bien se faire vu qu'il ne renvoie pas d'erreur. Si je charde une page autre que XML ou une page qui n'existe pas il me renvoie une erreut. Alors que la c'est page blanche.
 
death83
 
Montrer les messages depuis:   
Revenir en haut    Forum -> Développement d'un site Web Toutes les heures sont au format GMT + 2 Heures
Page 1 sur 2 - Aller à la page 1, 2  Suivante
Connexion
Nom d'utilisateur:    Mot de passe:      Se connecter automatiquement à chaque visite    

Définitions :

CLIQUEZ ICI pour vous inscrire à WebRankInfo (forum, annuaire, outils...)

Connexion

© 2001-2005 phpBB Group, support français
Personnalisation : WebRankInfo ™


 ODP  Firefox  Alsacreations  annuaire webmaster Yagoort