0

我有一个问题,我需要显示一个托管在远程服务器上的 XML 文件。我想用 CSS 和 PHP 在已分配的文件中显示该文件(page-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

提前,谢谢。

4

1 回答 1

1

函数 simplexml_load_string(); 创建对象。

如果你尝试 print_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;

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

于 2013-07-23T20:34:02.427 回答