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] Retourner la somme de certains prix


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2007
    Messages : 22
    Points : 12
    Points
    12
    Par défaut [SimpleXML] Retourner la somme de certains prix
    Bonjour,

    Je souhaite calculer le total des prix que j'ai dans mon fichier xml qui est le suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <root>
      <livre id="1">
        <article>Article 1</article>
        <prix>20</prix>
      </livre>
      <livre id="2">
        <article>Article 2</article>
        <prix>50</prix>
      </livre>
      <livre id="3">
        <article>Article 3</article>
        <prix>28</prix>
      </livre>  
    </root>

    J'utilise le "simplexml_load_file" pour charger mon fichier xml.

    J'ai essayé le fonction xpath "sum->xpath(//livre/prix)", mais ca ne fonctionne pas, seul "count" fonctionne.

    J'ai fait des recherches sur google, mais ca m'envoie des liens sur le XSL, alors que je ne veux pas passer par du XSL.

    Avez-vous des suggestions ou des bon liens qui montre comment faire des requetes avec des fonctions "simple_xml". Des requetes qui ressemblent à celle qu'on utilise dans SQL: sum, moy, etc.., sans passer par des boucles foreach ou while, car par exemple avec la fonction count de xpath, ca retourne le total des noeuds existant dans le fichier xml, sans passer par une boucle foreach, while ou for.

    Merci,

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    Lisez attentivement la documentation de la méthode xpath : celle-ci n'est prévue que pour renvoyer des objets SimpleXMLElement (correspondants à des noeuds - nodeset). Pas à faire ce genre de calcul Ne vous reste que l'extension DOM ...

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2007
    Messages : 22
    Points : 12
    Points
    12
    Par défaut
    Citation Envoyé par julp Voir le message
    Ne vous reste que l'extension DOM ...
    Est-ce que je peux travailler avec le simple_xml et le dom en même temps, ou bien c'est l'un ou l'autre, car j'ai déjà commencer à manipuler mon fichier xml avec le simple_xml

    Merci

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    Oui :
    dom_import_simplexml — Transforme un objet DOMElement en un objet SimpleXMLElement

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    192
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Décembre 2006
    Messages : 192
    Points : 68
    Points
    68
    Par défaut
    Citation Envoyé par julp Voir le message
    Oui :
    Salut julp,

    Apparement, il n'y a aucune fonction dom qui permet de faire ce que je voulais:
    "retourner le total (somme) des prix ".

    Je pense que je serai obligé de créer mon propre algorithme qui me permettra de calculer le total des valeurs qui se trouve dans le noeud prix.

    Qu'est-ce-t'en pense ? À moins que tu connais déjà une fonction propre à domxml qui me permet de calculer le total, car moi je ne l'ai pas trouvé

    Merci.

  6. #6
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    sum est une fonction XPath. En reprenant le document XML initialement donné :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php
    $dom = new DomDocument;
    $dom->load('fichier.xml');
    $xpath = new DomXPath($dom);
    $sum = $xpath->evaluate('sum(/root/livre/prix)');
    echo $sum;
    Résultat :
    98

    Dédoublement de personnalité ?

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    192
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Décembre 2006
    Messages : 192
    Points : 68
    Points
    68
    Par défaut Jonction de 2 fichier xml
    Bonjour Julp,

    Je voulais savoir si on pouvait traiter en même temps sur deux fichiers xml.

    Exemple:

    File1.xml:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <root>
      <livre id="1">
        <article>Article 1</article>
        <prix>20</prix>
      </livre>
      <livre id="2">
        <article>Article 2</article>
        <prix>50</prix>
    </root>
    File2.xml:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <root>
      <livre id="1">
        <disponible>Oui</disponible>
        <etat>usagé</etat>
      </livre>
      <livre id="2">
        <disponible>Non</disponible>
        <etat>neuf</etat>
    </root>

    Donc ce que je veux faire par exemple c'est d'afficher le prix (se trouvant dans Fichier1) et l'état (se trouvant dans le fichier 2) du livre avec l'id "1".

    Est-ce possible, si oui, j'aimerai savoir comment.

    Merci

  8. #8
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    Citation Envoyé par persia
    Je voulais savoir si on pouvait traiter en même temps sur deux fichiers xml.
    Non, il vous faudra le cas échéant les traiter en "parallèle", et ce, peu importe le moyen (2 documents = 2 objets SimpleXMLElement distincts). Pourquoi ne sont-ils pas "fusionnés" ?

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    192
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Décembre 2006
    Messages : 192
    Points : 68
    Points
    68
    Par défaut
    Citation Envoyé par julp Voir le message
    Pourquoi ne sont-ils pas "fusionnés" ?
    Car je veux tout simplement avoir 2 fichiers séparés.

    Je pensais qu'on pouvait extraire des données provenant d'un même id se trouvant dans 2 fichiers séparées, comme c'est le cas avec les tables mysql.

    Apparement, ce n'est pas le cas avec du xml.

    Merci comme même.

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2007
    Messages : 22
    Points : 12
    Points
    12
    Par défaut Mes anciens tuto ??
    Salut julp,

    J'aimerais savoir pourquoi on a effacé mes anciens tutos concernant la manipulation du fichier xml avec php.

    Je voulais les consulter, et là il ne sont plus dans mon tableau de bord !!


    Persia !!!!

Discussions similaires

  1. Somme de certaines cellules
    Par Bubut dans le forum Macros et VBA Excel
    Réponses: 19
    Dernier message: 16/07/2007, 17h36
  2. [jsp] Methode qui retourne un Time aprés certain calcul?
    Par adil_vpb dans le forum API standards et tierces
    Réponses: 15
    Dernier message: 10/04/2007, 13h02
  3. Requête : somme de certains éléments
    Par elluminus dans le forum Langage SQL
    Réponses: 5
    Dernier message: 06/04/2007, 17h41
  4. Réponses: 16
    Dernier message: 04/09/2006, 10h27
  5. Retourné des lignes dont certains champs sont vides
    Par griese dans le forum Langage SQL
    Réponses: 5
    Dernier message: 27/06/2006, 10h23

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