xml - 在 R 中,如何遍历重复的 XML 节点,并将文本值保存在列表中?

标签 xml r

我正在处理来自 clinicaltrials.gov 的 XML 文件,其结构如下:

<clinical_study>
  ...
  <brief_title>
  ...
  <location>
    <facility>
      <name>
      <address>
        <city>
        <state>
        <zip>
        <country>
    </facility>
  </location>
  <location>
    ...
  </location>
  ...
</clinical_study>

我正在从多个 XML 文件中收集信息,因此每个文件中的位置数是未知的,甚至可能为零。我需要提取有关每个位置的所有信息并保存到 SQL 表中。我使用 XML 包中的函数从单个节点中提取信息取得了一些成功,例如

library(XML)
nct_url <- "http://clinicaltrials.gov/ct2/show/NCT00112281?resultsxml=true"
xml_doc <- xmlParse(nct_url, useInternalNode=TRUE)
title_path <- "/clinical_study/brief_title" 
title_text <- xpathSApply(xml_doc, title_path, xmlValue)

我正在试验 getNodeSet,这给了我一组正确的长度:

doc <- xmlParse("NCT00007501.xml")
locations <- getNodeSet(doc, "/clinical_study/location")
length(locations)
[1] 22
> class(locations)
[1] "XMLNodeSet"

但我尝试从该集合中提取信息的尝试大多没有结果。有什么建议吗?

最佳答案

举个例子

 ns <- getNodeSet(xml, '//clinical_results/outcome_list/outcome/analysis_list/analysis/method')
 element_cnt <-length(ns))
 strings<-paste(sapply(ns, function(x) { xmlValue(x) }),collapse="|"))

关于xml - 在 R 中,如何遍历重复的 XML 节点,并将文本值保存在列表中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20622648/

相关文章:

java - 从包含 JAR 的 XML 文件中读取

xml - Xquery 查找 XML 中的最后一个条目?

c# - XML XPath 问题

python - 在 XML 文件中查找标签

r - ggplot2如何克服重叠点而无抖动或透明性

R:获取只有值 0 的列

r - 以给定的概率生成随机数

java - 从包含的布局执行类

regex - 检查当前单词之前是否有多个单词

微型计算机上的R脚本