récupération valeur d'un attribut [SimpleXml, Xpath] - PHP - Programmation
Marsh Posté le 14-04-2010 à 17:42:56
pour moi, chaque élément de ce type :
Code :
|
est un objet SimpleXmlelement
Après tu peux sans doute faire :
Code :
|
Marsh Posté le 14-04-2010 à 19:11:43
Merci pour ta réponse rapide the_bigboo!
Ta requete écrite comme ça:
Code :
|
me retourne un tableau rempli avec "Array"
De toute façon dans le proto[4] il n'y a pas qu'un seul value. Ce que je voudrais c'est récupérer le contenue de l'attribut value de l'élément <flied... pos="66"...> pour chaque paquet. avec l'écriture classique il me semble que ce n'est pas possible puisque cet élément est mobile ou absent en fonction des paquets...
Donc avec du xpath il me faudrait tester à chaque itération dans ma boucle foreach qui retourne le <packet> entier mais comment ?
Je commence à me mélanger les pinceaux et à devenir...
Marsh Posté le 14-04-2010 à 20:26:13
Attention, ce que je t'ai donné n'est pas la version finale, il y a surement des choses à changer La preuve ca ne marche pas
Après tu dois lire la doc du fonctionnement de xpath
Mais ca a l'air tout à fait faisable !
Marsh Posté le 14-04-2010 à 13:37:59
Bonjour à tous,
Je suis actuellement en train de faire un petit outil de parsing de fichiers xml, pdml plus précisement mais c'est pareil. Cet outil me servira à traduire des exports de captures de traffic wireshark dans le but de faire une expertise par la suite. Je me suis donc collé depuis 3 jours à simpleXML pour récupérer les données dont j'ai besoin dans mon xml dont voici la structure :
Je souhaiterai pour chaque <packet> récupérer plusieurs informations et les mettre en ligne dans un tableau.
J'ai donc deja fait ça :
Mon problème c'est : comment récupérer la valeur de l'attribut 'value' de l'élément <field ... pos="66"...value="ce que je veux"...> dans ma boucle foreach
Je ne peux pas fixer le chemin d'accès en dure ( $packet->proto[x]->field[y]->attributes()->value) comme pour les autres valeurs récupéré car cet élément-ci n'est pas forcément présent dans chaque <packet> ou alors il bouge (position field[13] ou [14], je dois donc réaliser une requete xpath?
j'ai essayé d'introduire une requete xpath dans mon foreach mais ça ne fonctionne pas, ou alors si ça fonctionne ça me liste tous les 'value' de l'élément selectionné présent dans tout le fichier.
Enfin voila, beaucoup de questions pour un naz du php commemoi. S'il vous plait merci de m'éclairer je bloque depuis 3 jours et j'en peux plus !!
Merci infiniment.
Message édité par Pierre2Toulouse le 14-04-2010 à 13:42:07