2009-06-21 9 views
0

Je tire du contenu d'un fichier XML avec SimpleXML.SimpleXML conditionnel possible?

Je me demandais s'il était possible d'afficher un certain nœud en fonction du contenu du nœud, par ex.

<article> 
    <title>PHP</title> 
    <content>yada yada yada</content> 
</article> 

<article> 
    <title>JAVASCRIPT</title> 
    <content>yodo yodo yodo</content> 
</article> 

Can SimpleXML peut-il trouver un titre spécifique et afficher l'article pour ce titre?

Afficher l'article dont le titre est 'PHP'.

J'espère vraiment que c'est possible.

Merci à tous ceux qui répondent.

Répondre

3
$article_list = new SimpleXMLElement($article_xml); 
foreach($article_list->article as $i => $article) { 
    if('PHP' == $article->title) { 
     //code to display article. 
    } 
} 

Ceci suppose que les étiquettes d'article se trouvent dans un élément parent.

6

Vous pouvez utiliser une expression XPath comme //article[title='PHP']/content

3

Voir PHP DevCenter, voici un échantillon:

$article_list = new SimpleXMLElement($article_xml); 
foreach ($article_list->xpath("//article[title='PHP']/content") as $content) { 
    print "$content\n"; 
} 

Aussi, si vous connaissez l'emplacement exact des noeuds de l'article, il est préférable d'éviter la notation // qui va chercher dans tous les niveaux du XML.