我正在解析從ClinicalTrials.gov下載的xml文件的目錄,並且無法提取數據。我可以爲單個文件(下面的NCT00006435.xml)執行此操作,但無法弄清楚如何爲多個文件執行此操作。用R解析XML文件的目錄
library(XML)
# Download ct.gov query and extract xml files
ct<-tempfile()
dir.create("ctdir")
url<-"https://clinicaltrials.gov/search?term=neurofibromatosis-type-1&studyxml=true"
download.file(url, ct)
unzip(ct, exdir="ctdir")
files<-list.files("ctdir")
# Change the working directory so we don't have to worry about the filepath
setwd("ctdir")
# Extract data from one file and get it into a data frame
#xmlfile<-xmlTreeParse("NCT00006435.xml")
#xmltop<-xmlRoot(xmlfile)
#tags<-xmlSApply(xmltop, function(x) xmlSApply(x, xmlValue))
#tags_df<-data.frame(t(tags),row.names=NULL)
# Extract data from each file and get it into a data frame
xmlfiles<-lapply(files,function(x) xmlTreeParse(x))
xmltop<-lapply(xmlfiles,function(x) xmlRoot(x))
tags<-???
如何運行文件列表,循環顯示每個文件中的每個標記?
您需要實際下載單個文件。 'xmlTreeParse()'在_local_文件上運行以提取XML。目前,我相信'files'只是包含一個匹配的文件名列表,因爲它們出現在服務器上。 –
另外'xmlTreeParse()'不會自動遷移到數據框,但需要'xmlToDataFrame()'。發佈示例xml會很有幫助。 – Parfait
Arrgh。 'object.size(xmltop)#40 196 696 bytes'。我們可以有一個「最小」的例子嗎?你對'標籤'含義的理解是什麼? –