[parser XML]

[parser XML] - PHP - Programmation

Marsh Posté le 25-06-2004 à 10:23:45    

Bonjour,
Voilà, je parse un fichier xml de manière très classique en php avec ça :

Code :
  1. function ouverture ($parser, $name, $attrs){
  2. blabla
  3. }
  4. function fermeture ($parser, $name){
  5. blabla
  6. }
  7. function texte ($parser, $data_text){
  8. echo $data_text;
  9. }
  10. xml_set_element_handler($xml_parser, "ouverture", "fermeture" );
  11. xml_set_character_data_handler($xml_parser, "texte" );


 
Ca me génère du html.
 
Voilà mon prob : je souhaite que quand le parser rencontre cette borne :
<type>montype</type>
alors rien ne s'affiche, entre autre que la fonction "texte" ne renvoie rien selon une condition : si 'montype' contient une chaine donnée.
En fait je souhaite filtrer le xml selon une condition sur le contenu d'un champ.
 
Merci de votre aide.
Pierre.

Reply

Marsh Posté le 25-06-2004 à 10:23:45   

Reply

Marsh Posté le 25-06-2004 à 10:30:17    

Peux-tu reformuler ta question ?
 
 
Si tu cherches à savoir si telle chaine est incluse dans telle autre, voici l'exemple donné dans la doc PHP (http://fr.php.net/strpos) :

$mystring = 'abc';
$findme  = 'a';
$pos = strpos($mystring, $findme);
 
// Notez l'utilisation de ===.  Un simple == ne donnerait pas le résultat escompté
// car la lettre 'a' est à la position 0 (la première).
if ($pos === false) {
   echo "La chaîne '$findme' n'a pas été trouvée dans la chaîne '$mystring'";
} else {
   echo "La chaîne '$findme' a été trouvée dans la chaîne '$mystring'";
   echo " et à la position $pos";
}


 
Sinon tu peux utiliser les expressions régulières avec un pattern du genre "<type>.*</type>"

Reply

Marsh Posté le 25-06-2004 à 10:38:36    

En fait je cherche à ce que le parser ne traite pas le noeud "type" si le contenu du texte entre <type> et </type> contient foo.
Je voudrais éviter de réécrire le parser avec des strpos à n'en plus finir. C'est quand meme l'avantage du parser.

Reply

Marsh Posté le 25-06-2004 à 10:41:01    

Savez-vous si dans la fonction "ouverture j'ai accès au contenu texte de la balise "type" en connaissant les variables $parser, $name, $attrs (ou $name vaut 'type')

Reply

Marsh Posté le 25-06-2004 à 10:44:01    

pour XML, si tu bosses avec PHP5, il y a un article ici :
PHPTeam


---------------
fermez vos topics résolus avec le tag [Résolu] en fin de titre. Merci !
Reply

Marsh Posté le 25-06-2004 à 10:58:58    

Merci pour le lien. Cette extention à l'air prometteuse en effet ! Mais je n'ai qu'expat sur php 4.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed