如何从pubmed结果生成文章名称和电子邮件地址列表?

时间:2010-10-09 03:49:14

标签: php html xml arrays

我想生成一个(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列表,在其下面跟着相关的电子邮件地址?

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

我运行了你的脚本,我没有在输出中看到一个电子邮件地址。

无论哪种方式,完成您正在尝试的最简单的方法是获取XML,然后对返回的XML应用非常简单的XSL转换(XSLT)。