1

我正在使用 CodeIgniter 和为它编写的 Basecamp 类来连接到 Basecamp API 并从中检索数据。我很好地连接并很好地抓取数据,并使用 SimpleXML 返回它(您可以在请求中指定 XML 或 SimpleXML)。

我只是在从响应中获得任何好处时遇到了一个大问题。以下是原始响应的样子:http: //pastie.org/private/bbxhgbzbbbk77ji3ua4g并查看源代码:http: //pastie.org/private/qftl28osnumhrdwr1zxuw

显然我是通过 print_r 命令看到的。

例如,有人可以告诉我如何从中获取项目名称列表吗?

如果效果更好,我也可以用 XML 提出请求。

4

1 回答 1

2

我们可以将响应中的“body”字符串加载到新的 SimpleXML 对象中,并遍历“project”节点以获取项目信息。在这里,您似乎已经加载了 SimpleXML 对象,所以我们只需要完成剩下的工作。

$projects = array();
foreach($response['body']->project as $_xml) {
    //parse the project xml into array
    $projects[] = xml2array($_xml);
}
print_r($projects);

//list the project titles
foreach($projects as $project) {
    echo $project['name'] .'<br/>';
}

//function to parse a xml object to array: http://php.net/manual/en/ref.simplexml.php
function xml2array ($xmlObject, $out = array())
{
    foreach ((array)$xmlObject as $index => $node) {
        $out[$index] = (is_object($node)) ? xml2array ($node) : $node;
    }
    return $out;
}

干杯

于 2011-06-30T18:51:54.670 回答