如何使用php在前端使用Wordpress显示远程XML文件


How to display remote XML file with Wordpress in frontend using php?

我有一个问题,我需要显示一个托管在远程服务器上的XML文件。我想用CSS和PHP在已经分配的文件中显示该文件(第xxxx.PHP页)

我目前正在使用以下代码,但我不太清楚我要做什么:

<!-- API here we go!!! -->
<?php
$xmlhd = wp_remote_get('http://www.myurl.com/api/channel.php?type=hd');
$xmlparseado = simplexml_load_string($xmlhd['body']);
?>

代码中指定的URL显示一个XML文件,如下所示:

<programations>
    <channel name="KCBS HD">
        <row>
            <date>july, 23</date>
            <time>06:00</time>
            <title><![CDATA[ WKCBS Action News ]]></title>
            <description><![CDATA[ Action News, hosted by: Jenn Doe ]]></description>
            <imagethumb/>
        </row>
        <row>
            <date>July, 23</date>
            <time>06:35</time>
            <title><![CDATA[ KCBS Sports Center ]]></title>
            <description><![CDATA[ The best scoreS from the Sportscenter stadium, hosted by: Fernando Sobalaprieta ]]></description>
            <imagethumb/>
        </row>
    </channel>
</programations>

我想知道的是如何在页面的前端显示这一点:

  • 日期
  • 时间
  • 说明
  • 缩略图(如果存在)

注意:

XML的内容只是一个示例,并不一定代表现实:D

提前,谢谢。

函数simplexml_load_string();创建对象。

如果您尝试打印r($xmlparseado),您应该得到以下内容:

SimpleXMLElement Object
(
    [channel] => SimpleXMLElement Object
        (
            [@attributes] => Array
                (
                    [name] => KCBS HD
                )
            [row] => Array
                (
                    [0] => SimpleXMLElement Object
                        (
                            [date] => july, 23
                            [time] => 06:00
                            [title] => SimpleXMLElement Object
                                (
                                )
                            [description] => SimpleXMLElement Object
                                (
                                )
                            [imagethumb] => SimpleXMLElement Object
                                (
                                )
                        )
                    [1] => SimpleXMLElement Object
                        (
                            [date] => July, 23
                            [time] => 06:35
                            [title] => SimpleXMLElement Object
                                (
                                )
                            [description] => SimpleXMLElement Object
                                (
                                )
                            [imagethumb] => SimpleXMLElement Object
                                (
                                )
                        )
                )
        )

因此,使用迭代,例如对于每一行,您应该访问每一行:

$xmlparseado = simplexml_load_string($string);
$content = '';
$rows = $xmlparseado->channel->row;
foreach($rows as $key=>$row){   
    if($key =='row'){
     $row_string = '<ul>';
     $row_string.= '<li>Date: '.$row->date.'</li>';
     $row_string.= '<li>Time: '.$row->time.'</li>';
     $row_string.= '</ul>';
     $content.=$row_string;     
    }   
}
echo $content;

注意:这只是一个例子,但您可以使用它的模式