IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques et frameworks PHP Discussion :

[SimpleXML] Requête xpath sur deux balises


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 16
    Par défaut [SimpleXML] Requête xpath sur deux balises
    Bonjour,

    Jusqu'à présent, j'utilisais ce fichier XML :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <item>
    	<title>Mon titre</title>
    	<price>335</price>
    	<category>TABLE PROMO</category>
    	<link>ma-page.htm</link>
    </item>
    Et pour extraire les tables en promo, je faisais cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <?php  
    		$xml   = simplexml_load_file('../fichier.xml');
    		$items = $xml->xpath('//item/category[contains(.,"TABLE") and contains(.,"PROMO")]/.. ');
    		foreach($items as $item){
    			echo '<p> bla bla bla</p>';
    		}
    ?>
    Je souhaiterais faire évoluer mon fichier xml de la façon suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <item>
    	<title>Mon titre</title>
    	<oldprice>335</oldprice>
    	<price>300</price>
    	<category>TABLE</category>
    	<link>ma-page.htm</link>
    </item>
    Et donc pour cette même requête extraire <category> = TABLE et <oldprice> = NON VIDE

    Je n'y arrive pas ....

    Quelqu'un aurait-il une idée ?

    1000 mercis

    Jm

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 16
    Par défaut Xpath sur deux noeuds différents
    Re bonjour,

    J'ai résolu une première partie

    Avec ceci j'arrive bien à trouver les promos :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $items = $xml->xpath('//item/oldprice[.>0]/.. ');
    Mais je n'arrive pas à réunir les deux noeuds. Parmi mes nombreuses tentatives, voici la dernière :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $items = $xml->xpath('//item[oldprice[.>0] and category[contains(.,"TABLE")]]/.. ');
    Quelqu'un voit-il comment je peux m'en sortir ?

    1000 mercis,

    Jm

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 16
    Par défaut Résolu
    Problème résolu,

    Ma question n'a pas eu beaucoup de succès, mais au cas où cela puisse aider quelqu'un voici la solution :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $items = $xml->xpath('//item[contains(category,"TABLE") and oldprice > 0]');

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Requête portant sur deux tables et deux champs
    Par OliviaS dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 12/05/2008, 20h37
  2. [Requête] Jointure sur deux tables.
    Par Invité dans le forum Langage SQL
    Réponses: 2
    Dernier message: 20/11/2007, 12h36
  3. une liste ou requête basée sur deux fichiers
    Par chapeau_melon dans le forum WinDev
    Réponses: 8
    Dernier message: 12/11/2007, 21h00
  4. [SQL] Problème avec script de pagination et requête sql sur deux tables
    Par psychoBob dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 12/06/2006, 15h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo