如果标记值为X,如何显示信息

时间:2014-11-12 22:28:30

标签: php xml

我想知道如果标签的值是CANFONTI,如何从XML显示na INFO。

所以,我已经更新了XML页面:http://www.cidadehoje.pt/musics/musics/te.xml

段:

<onairplaylist radio="RADIO CIDADE HOJE">
    <element>
        <author>DOISMILEOITO</author>
        <title>SÓ FAÇO BEM (2011)</title>
        <genre>POP</genre>
        <table>CANFONTI</table>
        <id>0019826001</id>
    </element>
    <element>
        <author>Anotherguy</author>
        <title>Let's play another song</title>
        <genre>FOO</genre>
        <table>BAR</table>
        <id>9999999991</id>
    </element>
</onairplaylist>

这段代码:

<?php
$x = simplexml_load_file('http://www.cidadehoje.pt/musics/musics/te.xml');
echo '<font color="#FFFFFF" face="Raleway-light" size="+3" style="display:inline">';
echo $x->element[0]->author[0];
echo ' - ';
echo $x->element[0]->title[0];
echo '</font>';
?>

如果标签“table”的值为“CANFONTI”,我只想显示“author - title”。

你能帮我解决这个问题吗?

提前谢谢大家。

2 个答案:

答案 0 :(得分:0)

如果你的意思是这样的话:

<?php
$x = simplexml_load_file('http://www.cidadehoje.pt/musics/musics/te.xml');
if($x->element[0]->table[0] == "CANFONTI")
{
    echo '<font color="#FFFFFF" face="Raleway-light" size="+3" style="display:inline">';
    echo $x->element[0]->tag[0];
    echo ' - ';
    echo $x->element[0]->title[0];
    echo '</font>';
}
?>

你应该读一些关于PHP的书。

答案 1 :(得分:0)

使用xpath()选择所有需要的元素:

$xml = simplexml_load_string($x); // $x containing the XML
$elements = $xml->xpath("//element[table = 'CANFONTI']");

现在输出:

foreach ($elements as $element) echo $element->title . PHP_EOL;

看到它正在运行:https://eval.in/220617

第2行将选择<element>所有<title>' being 'CANFONTI并将其存储在数组$elements中。然后循环和回声。