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

Langage PHP Discussion :

filter une balise xml dans objet


Sujet :

Langage PHP

  1. #1
    Invité
    Invité(e)
    Par défaut filter une balise xml dans objet
    Bonjour,

    en fait j'ai un objet qui contient des balise xml en fait je veux filtrer la chaîne qui commencer par Fm
    je mis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $bject->proprieter->Fm%
    mais ça marche pas

    Merci de votre aide

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    La solution la plus simple est de récupérer tous les enfants et faire le filtre au niveau du traitement.
    En supposant que tu parses ton xml en utilisant SimpleXml, ça donnerait quelque chose comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $props = $bject->proprieter->getChildren();
     
    foreach($props as $prop) {
    	if (stripos($prop->getName(), 'Fm') === 0) { 
    		// on garde
    	} else {
    		// on ignore
    	}
    }
    Bon évidement, c'est une méthode assez bourrine. Si tu as beaucoup d'enfants et que seulement quelques uns t'intéressent, il serait judicieux de chercher une autre solution.
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  3. #3
    Invité
    Invité(e)
    Par défaut
    Merci de votre réponse ,en fait je utilise pas simpleXmpl ce que j'ai tout simplement un object qui contient des balises
    en fait le nom de balise parfois FmtBold ou FmtCOld j'ai besoin de recupérer cette balise quelque soit si pourcela j'utilise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $object->property->Fmt% %
    pour tout qui commencer par Fmt mais ça donner rien

    Merci en avance

  4. #4
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    J'ai rien compris en fait... Tu as un objet et veut uniquement lire les attributs qui commencent par 'Fmt' ? le fait que ce soit un XML à l'origine n'a en fait aucun impact ?
    Tu peux essayer d'adapter mon code avec quelque chose comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    foreach($object->property as $propName => $propVal) {
    	if (stripos($propName, 'Fm') === 0) { 
    		// on garde
    	} else {
    		// on ignore
    	}
    }
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  5. #5
    Invité
    Invité(e)
    Par défaut
    merci mais en fait c'est pas un attribut c'est propriéter aussi :
    mon objet contient cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <comps><comp><FmtCold><high><width></FmtCold></comp></comps>
    dans autre Cas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <comps><comp><FmtBold><high><width></FmtBold></comp></comps>
    tant je récuper l'objet dynamique je sais pas est ce que si FmtBold ou FmtCold
    si pour cela j'ai besoin de faire $object->comps->comp->Fmt% mais ça marche pas

    Merci en avance

  6. #6
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Bon je comprends ce que tu veux faire, mais je n'arrive pas à comprendre comment tu le fais. Peux-tu montrer le code qui va avant ta tentative avec $object->comps->comp->Fmt% ?
    Parce que bon, il doit bien y avoir un parsing de xml quelque part dans l'équation...

    Au passage, je ne sais pas où tu es allé chercher ce "%", mais à ma connaissance en dehors d'une recherche SQL, ça n'a aucune chance de marcher...
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  7. #7
    Invité
    Invité(e)
    Par défaut
    voilà mon var_dump de $comp:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    object(stdClass)[155]
      public 'Title' => string 'Assemblage' (length=10)
      public 'NbSections' => int 35
     
      public 'MaxNumberOfUps' => int 0
      public 'FmtStd' => 
        object(stdClass)[156]
          public 'Width' => float 21
          public 'Height' => float 14.8
    merci en avance

Discussions similaires

  1. Comment transformer une balise xml dans une requete xsl:for-each
    Par Max1000p dans le forum XML/XSL et SOAP
    Réponses: 8
    Dernier message: 07/06/2012, 09h46
  2. Repérer une balise XML dans une archive : problème avec zipgrep
    Par VforVincent dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 29/06/2011, 15h34
  3. [DOM4J] Récupérer un id dans une balise XML
    Par tiph02 dans le forum Format d'échange (XML, JSON...)
    Réponses: 5
    Dernier message: 15/01/2009, 16h16
  4. [XML][PHP]Extraire balise img dans une balise xml
    Par thierry232323 dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 17/10/2006, 13h25
  5. problème xsl : inclure une donnée xml dans une balise html
    Par djodjo dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 03/01/2003, 09h24

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