我正在尝试解析来自 NIH 的 pubmed 系统的 xml 输出。我已经生成了要解析的 URL,但 xmlParse() 函数似乎正在将额外的“ AND ”文本添加到包含运算符的 URL 中。
例如:
url <- 'http://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?db=pubmed&term=smith+m[author]+AND+science[journal]'
di <- xmlParse(url)
dl <- xmlToList(di)
这会产生一个“NULL”IdList(结果应该在哪里):
> dl[["IdList"]]
NULL
检查 QueryTranslation 揭示了问题(请参阅:额外的 AND):
> dl[["QueryTranslation"]]
[1] "smith+m[author] AND +AND+science[journal]"
知道那里发生了什么吗?这发生在我构造的具有“AND”或“OR”等运算符的每个搜索字段或查询类型中。
一个干净的解析,找到 20 篇论文供参考:
> url <- 'http://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?db=pubmed&term=smith+bm[author]'
> di <- xmlParse(url)
> dl <- xmlToList(di)
> length(dl[["IdList"]])
[1] 20