这给了我xml,我无法访问。我尝试过以下内容,但我得不到任何回报:
ini_set("user_agent", 'myemail');
$xml=simplexml_load_file('http://en.wikipedia.org/w/api.php?action=query&prop=extracts&format=xml&exsentences=2&exlimit=10&exintro=&explaintext=&redirects=&generator=search&gsrsearch=France&gsrlimit=10');
header('Content-Type: text/xml');
echo $xml->api->query->pages->page[0]->extract;
谁能告诉我我做错了什么?请考虑到我在这里是一个XML新手...
答案 0 :(得分:2)
试
$xml=simplexml_load_file('http://en.wikipedia.org/w/api.php?action=query&prop=extracts&format=xml&exsentences=2&exlimit=10&exintro=&explaintext=&redirects=&generator=search&gsrsearch=France&gsrlimit=10');
echo $xml->query->pages->page[0]->extract;
输出: - 在第二次世界大战中,法国之战,也被称为法国的沦陷,是1940年5月10日德国成功入侵法国和低地国家,主要击败法国军队。战斗包括两个主要行动。
答案 1 :(得分:0)
我会改用json api:在url字符串中将format=xml
更改为format=json
,然后执行:
$json = file_get_contents('http://en.wikipedia.org/w/api.php?action=query&prop=extracts&format=json&exsentences=2&exlimit=10&exintro=&explaintext=&redirects=&generator=search&gsrsearch=France&gsrlimit=10');
$data = json_decode($json, true);
foreach ($data['query']['pages'] as $page) {
echo '<p>' . $page['extract'] . '</p>';
}
使用json_decode你得到一个简单的php数组,我发现它比simplexml更直观,但那只是偏好。