requete simpleXml

dudo
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 456
Inscription: 10 Jan 2004

requete simpleXml

Message le Lun Mai 09, 2011 19:44

bonsoir,

Sur une requête XPath je ne voudeais récupérer que les noeuds produit ayant un fils ville_dep qui vaut paris,
sur ma lecture je récupère tous les noeuds.

voyez-vous un problème sur la requête ?
j'ai mis un fichier test si cela intéresse quelqu'un

Merci d'un avis

Code: Tout sélectionner
<?
            define('NB_PAR_PAGE', 10);
$page = isset($_GET['page']) ? intval($_GET['page']) : 1;   
$document = simplexml_load_file('produits.xml');
$count = count($document->xpath("//produit[prix/unprix/ville_dep='lyon']"));

$debut_pos = ($page - 1) * NB_PAR_PAGE + 1;
$fin_pos = $page * NB_PAR_PAGE + 1;    $derniere_page = ceil($count / NB_PAR_PAGE);

if ($count > 0) {

$produits = $document->xpath(utf8_encode("//produit[position()>=$debut_pos and position()<$fin_pos and prix/unprix/ville_dep='lyon']"));

   foreach ($produits as $produit) {
        $nomp = utf8_decode((string) $produit->nom_produit);
        $ville = utf8_decode((string) $produit->ville_dest);
        $dep = utf8_decode((string) $produit->prix->unprix[1]->date_dep);
        $desc = utf8_decode((string) $produit->accroche);
        $img = utf8_decode((string) $produit->img_produit);
        $pri = utf8_decode((string) $produit->prix->unprix[1]->prix);
               $lien = ''; // Variable indéfinie sans

        echo '<table width="90%" border="0" align="center">
        foreach ($produit->prix->unprix as $unprix) {
            echo '<tr>
                <td>depart : ' . utf8_decode((string) $unprix->date_dep) . ' à ' . utf8_decode((string) $unprix->ville_dep) . '</td>
            </tr>';
        }
        echo '</table>';




Code: Tout sélectionner
[code]<?xml version="1.0" encoding="utf-8"?>
<produit>
    <nom_fournisseur>nom du fournisseur</nom_fournisseur>
    <prix>
       <unprix>
        <ville_dep>lyon</ville_dep>
        <date_dep>2007-11-12</date_dep>
        <prix_produit>3621</prix_produit>
      </unprix>
      <unprix>
        <ville_dep>lyon</ville_dep>
        <date_dep>2007-10-15</date_dep>
        <prix_produit>3981</prix_produit>
      </unprix>
      <unprix>
        <ville_dep>marseille</ville_dep>
        <date_dep>2007-10-01</date_dep>
        <prix_produit>3981</prix_produit>
      </unprix>
      <unprix>
        <ville_dep>paris</ville_dep>
        <date_dep>2007-09-03</date_dep>
        <prix_produit>3521</prix_produit>
      </unprix>
    </prix>
  </produit>
   

ZelkiN
WRInaute impliqué
WRInaute impliqué
 
Messages: 500
Inscription: 27 Juil 2007

Re: requete simpleXml

Message le Mer Mai 11, 2011 11:13

Parse ton fichier xml, ca va alors de le mettre en tableau, puis joue avec la fonction array_filter et tu devrais avoir ce que tu recherches


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités