2009-06-21 67 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的各个层次。