Page 1 sur 1

Parser ou extraire une chaine de caractères

Posté : 08 févr. 2011, 18:22
par Megadeth
Bonjour,

Je cherche à faire la chose suivante :
- soit r le résultat d'un fichier xml à l'écran.
Toutes les balises à l'écran ne me sont pas utiles, seulement quelques unes. Y a t-il un moyen de "parser" (terme valable dans ce cas ?) ces données de façon à ne récupérer que ce qui m'intéresse ou dois-je faire une extraction avec des fonctions PHP ? Je pensais à explode mais pour trouver un dénominateur commun c'est pas gagné. Que me conseilleriez-vous ?

Est-il possible de dire, je cherche l'occurrence "toto" et dès que je la trouve je m'arrête au prochain "<" rencontré. Expression régulière ?

A votre écoute !

Sereinement,

Mega
;)

Re: Parser ou extraire une chaine de caractères

Posté : 08 févr. 2011, 18:25
par stealth35
PHP à tout ce qu'il faut pour manipuler le XML nativement

Re: Parser ou extraire une chaine de caractères

Posté : 08 févr. 2011, 19:44
par Megadeth
Encore toi !!!

Ca fonctionne même avec la syntaxe ci-dessous :
<Author Val="Verlaine" />

car je vois dans les exemples :
<europe>
<pays>France</pays>
<pays>Belgique</pays>
<pays>Espagne</pays>
</europe>


?

Mega
;)

Re: Parser ou extraire une chaine de caractères

Posté : 08 févr. 2011, 21:41
par xTG
Cela fonctionne même avec cette syntaxe, c'est pas une syntaxe spéciale, c'est propre au XML donc pourquoi cela ne serait pas géré ?

Re: Parser ou extraire une chaine de caractères

Posté : 09 févr. 2011, 11:43
par Megadeth
Bonjour,

Oui, c'est juste après réflexion, dans ma tête la norme était plus ce que j'avais décrit dans mon premier post...

Pour le coup j'ai utilisé simpleXML.
<?php
$xmlstr = '...<auteur val="RIMBAUD" />...';

$xml = new SimpleXMLElement($xmlstr);

print_r($xml);//renvoie [auteur] => SimpleXMLElement Object ( [@attributes] => Array ( [val] => RIMBAUD) 

echo $xml->auteur[0] ;//mais ca ne renvoie rien 

?> 
:(

Where is my boulette ?

Mega
;)

Re: Parser ou extraire une chaine de caractères

Posté : 09 févr. 2011, 11:50
par stealth35
echo $xml->auteur->attributes()->val;

Re: Parser ou extraire une chaine de caractères

Posté : 09 févr. 2011, 17:40
par Megadeth
Merci stealth35 !

Pour ceux que ca intéresserait, voici un exemple qui fonctionne :
$xmlstr = '<query><result><champs><prenom val="Arthur" /><nom val="RIMBAUD" /></champs></result></query>';

$xml = new SimpleXMLElement($xmlstr);

echo '<pre>'.print_r($xml).'</pre>';

echo $xml->result->champs->prenom->attributes()->val;
echo ' ';
echo $xml->result->champs->nom->attributes()->val;
++

Mega
;)