2009-06-21 3 views
0

Я тяну содержимое из XML-файла с помощью SimpleXML.Возможно использование условного SimpleXML?

Мне было интересно, можно ли отобразить определенный узел в зависимости от содержимого узла, например.

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

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

Может ли SimpleXML найти конкретное название, а затем отобразить статью для этого названия?

Показать статью с названием «PHP».

Я действительно надеюсь, что это возможно.

Спасибо всем, кто отвечает.

ответ

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

Это предполагается, что теги статьи находятся в родительском элементе.

6

Вы можете использовать выражение XPath, как //article[title='PHP']/content

3

См PHP DevCenter, вот пример:

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

Кроме того, если вы знаете точное расположение узлов статьи лучше избегать // обозначения который будет искать на всех уровнях XML.