【发布时间】:2011-09-09 02:03:49
【问题描述】:
有没有办法计算给定 xml 文件中有多少条目?
示例:http://world.needforspeed.com/SpeedAPI/ws/game/nfsw/driver/rackemup420/cars?output=xml
我的代码:
// The POST URL and parameters
$request = 'http://world.needforspeed.com/SpeedAPI/ws/game/nfsw/driver/'.$u.'/cars?output=xml';
// Get the curl session object
$session = curl_init($request);
// Set the POST options.
curl_setopt($session, CURLOPT_HEADER, true);
curl_setopt($session, CURLOPT_RETURNTRANSFER, true);
// Do the POST and then close the session
$response = curl_exec($session);
curl_close($session);
// Get HTTP Status code from the response
$status_code = array();
preg_match('/\d\d\d/', $response, $status_code);
// Check for errors
switch( $status_code[0] ) {
case 200:
// Success
break;
case 503:
die('Service unavailable. An internal problem prevented us from returning data to you.');
break;
case 403:
die('Forbidden. You do not have permission to access this resource, or are over your rate limit.');
break;
case 400:
// You may want to fall through here and read the specific XML error
die('Bad request. The parameters passed to the service did not match as expected. The exact error is returned in the XML response.');
break;
default:
die('Your call returned an unexpected HTTP status of:' . $status_code[0]);
}
// Get the XML from the response, bypassing the header
if (!($xml = strstr($response, '<?xml'))) {
$xml = null;
}
// Output the XML
$worldCar = simplexml_load_string($xml);
foreach ($worldCar->worldCar as $cars)
{
$playercarid = $cars['carId'];
$playercarmake = $cars['make'];
$playercarname = $cars['carName'];
$playercaraccel = $cars->physicsProfile['acceleration'];
$playercarhandle = $cars->physicsProfile['handling'];
$playercarrating = $cars->physicsProfile['rating'];
$playercarspeed = $cars->physicsProfile['topSpeed'];
$playercartier = $cars->physicsProfile['tier'];
}
【问题讨论】:
-
您能解释一下您要计算的是哪个属性或元素吗?