ここに2つのオプションがあります
CSVアップロード
CSV を直接アップロードし、 http://www.crossref.org/stqUpload/でテキスト クエリを実行するのと同じように実際にはうまく機能しない別の有望なソリューションを見つけました。
ただし、250 件のクエリのうち 18 件 (≈7%) のみが DOI を返しました。
XML クエリ
Brian Diggs による回答に基づいて、XML ベースのクエリを作成する作業の 95% を行う試みを次に示します。を使用して削除する必要があるバグがまだいくつかありますsed
。しかし、最大の問題は、クエリが送信されたときに発生した「セッション タイムアウト」エラーです。
XML 構文には、あいまい一致を使用するオプションが含まれています。
このファイルには、ブライアンの回答doiquery.xml
のテンプレート テキストが含まれています。ファイルは上にリンクされています。citations.csv
library(XML)
doiquery.xml <- xmlTreeParse('doiquery.xml')
query <- doiquery.xml$doc$children$query_batch[["body"]]
citations <- read.csv("citations.csv")
new.query <- function(citation, query = query){
xmlValue(query[["author"]]) <- as.character(citation$author)
xmlValue(query[["year"]]) <- as.character(citation$year)
xmlValue(query[["article_title"]][["text"]]) <- citation$title
xmlValue(query[["journal_title"]]) <- citation$journal
return(query)
}
for (i in 1:nrow(citations)){
q <- addChildren(q, add.query(citations[i,]))
}
axml <- addChildren(doiquery.xml$doc$children$query_batch, q )
saveXML(axml, file = 'foo.xml')
CSV から XML へのコンバーター
Creativyst ソフトウェアは、Web ベースのCSV から XML へのコンバーターを提供します。
必要な手順は次のとおりです。
- ElementIDsフィールドに列名を入力します。
- DocIDフィールドに入力
document
します。
- RowIDフィールドに入力
query
します。
- CSV ファイルをコピーして [入力 CSV ファイル]フィールドに貼り付けます。
- [変換]をクリックします。
関連する質問も参照してください: CSV を XML クエリに解析するためのシェル スクリプト?