【问题标题】:How to Read Xml data using codeigniter?如何使用 codeigniter 读取 Xml 数据?
【发布时间】:2014-12-14 05:41:39
【问题描述】:

我想在 codeigniter 中使用 curl 读取 xml 数据。我创建了一个帮助文件,它将从以下 url 读取数据:http://www.ekidata.jp/api/l/11302.xml 但问题是我无法从该 url 读取数据。请帮助 这是我的帮助文件结构:

if (!function_exists('ekidata')) {

function ekidata($type, $code)
{

    $apiurl = 'http://www.ekidata.jp/api/'.$type.'/'.$code.'.xml';

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_URL, $apiurl);
    $response = curl_exec($ch);
    curl_close($ch);
    $xml = simplexml_load_string($response);
    if ($type == 'l') {
        return $xml;    
    } else {

    }
}

}

这是我的控制器:

function ekidatatest()
{
    $this->load->view('ekidatatest');
}

这是我的看法:

<?php echo ekidata('l', 11302);?>

【问题讨论】:

  • 您的代码不包含错误处理,并且输出格式很可能会妨碍显示 XML 编码信息和/或纯文本值。请注意“但问题是我无法从该 url 读取数据”不是一个很好描述的问题,因此您的问题很容易让人猜测。然而 Stackoverflow 是一个关于编程问题的问答网站,很少征求意见和猜测。也许您可以改进您的问题,明确指出您认为已经做了一些意想不到的事情的第一行代码,然后您可以解释一下您的预期?

标签: php xml codeigniter curl codeigniter-2


【解决方案1】:

我已经测试了你的代码,它工作正常,我看到的唯一问题是你试图回显一个对象(返回的 XML 变量),试试:

print_r (ekidata('l', 11302));

您应该会看到文件中的所有 xml 对象,然后您可以循环该对象并获取您需要的数据。所以如果你想要第一个站名,你可以这样得到:

$r = ekidata('l', 11302);
echo $r->station[0]->station_name;

并在所有站点上循环:

foreach($r->station as $station) {
    echo $station->station_name.'<br/>';

 }

【讨论】:

    猜你喜欢
    • 2018-06-03
    • 2020-09-17
    • 1970-01-01
    • 2011-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多