我想生成一个(1)文章标题列表和(2)文章作者电子邮件地址所有来自发布的搜索结果。使用pubmed的EFetch ultility(有关详细信息,请参阅此链接:http://www.ncbi.nlm.nih.gov/corehtml/query/static/efetchlit_help.html)我已成功创建了一个php脚本,以xml格式检索此数据,如下所示...
<?php
$query = '"genetics"[MeSH] AND "Nature"[TA]';
$params = array(
'db' => 'pubmed',
'retmode' => 'xml',
'retmax' => 1,
'usehistory' => 'y',
'term' => $query,
);
$xml = simplexml_load_file('http://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?' . http_build_query($params));
$params = array(
'db' => 'pubmed',
'retmode' => 'xml',
'query_key' => (string) $xml->QueryKey,
'WebEnv' => (string) $xml->WebEnv,
'rettype' => 'full',
'retmax' => 10,
);
$xml = simplexml_load_file('http://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?' . http_build_query($params));
print_r ($xml);
?>
<?php
$query = '"genetics"[MeSH] AND "Nature"[TA]';
$params = array(
'db' => 'pubmed',
'retmode' => 'xml',
'retmax' => 1,
'usehistory' => 'y',
'term' => $query,
);
$xml = simplexml_load_file('http://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?' . http_build_query($params));
$params = array(
'db' => 'pubmed',
'retmode' => 'xml',
'query_key' => (string) $xml->QueryKey,
'WebEnv' => (string) $xml->WebEnv,
'rettype' => 'full',
'retmax' => 10,
);
$xml = simplexml_load_file('http://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?' . http_build_query($params));
print_r ($xml);
?>
但是,我无法解决两个问题。
(1)电子邮件地址没有自己的xml字段,因为您可以查看是否查看了我的示例生成的输出。因此,如何从xml中提取这些地址?
(2)一旦完成,我如何创建一个文章标题的html列表,在其下面跟着相关的电子邮件地址?
提前感谢您的帮助!
答案 0 :(得分:1)
我运行了你的脚本,我没有在输出中看到一个电子邮件地址。
无论哪种方式,完成您正在尝试的最简单的方法是获取XML,然后对返回的XML应用非常简单的XSL转换(XSLT)。