2009-07-26 9 views
1

Bonjour, j'ai le problème suivant.Trouver avec les paramètres spécifiques au php en XML

J'ai un fichier XML et je connais la valeur de "uniquename = value2". Je veux extraire la valeur de l'URL.

<set uniquename="value1"> 
    <items> 
    <item> 
     <units> 
     ... 
     </units> 
    </item> 
    <item> 
     <units> 
     ... 
     <url>http://www.something</url> 
     ... 
     </units> 
    </item> 
    </items> 
</set> 
<set uniquename="value2"> 
    <items> 
    <item> 
     <units> 
     ... 
     </units> 
    </item> 
    <item> 
     <units> 
     ... 
     <url>http://www.something2</url> 
     ... 
     </units> 
    </item> 
    </items> 
</set> 

Quelqu'un a des suggestions?

Merci à tous.

Répondre

4

Vous pouvez le faire simplement avec simplexml et xpath:

$x = simplexml_load_string($xml); 
$nodes = $x->xpath('set[@uniquename="value2"]/items/item/units/url'); 

$url = (string)$nodes[0]; 
+0

+1, réponse simple et propre. J'avais commencé à répondre avec une réponse à propos de simplexml, puis je me suis rendu compte que je n'avais pas fait beaucoup de travail et que je ne savais pas à quoi ressemblerait la structure de l'objet ni comment y accéder. C'est ce que j'aime SO ... tu apprends toujours quelque chose. – zombat

+1

Oups, point nitpick. Le fichier XML de l'affiche est dans un fichier, donc vous voudrez probablement utiliser 'simplexml_load_file()' à la place. – zombat

Questions connexes