2009-06-21 68 views
0

我正在使用SimpleXML從XML文件中提取內容。有條件的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的各個層次。