如何读取XML输入文件,操作一些节点(删除并重命名一些)并将输出写入新的XML输出文件?

我需要从互联网上读取一个XML文件并重新塑造它.
这是我迄今为止的XML文件和代码.

library(XML)
url='http://ClinicalTrials.gov/show/NCT00001400?displayxml=true'  
doc = xmlParse(url,useInternalNode=TRUE)

我能够使用XML包中的一些函数(例如,getNodeSet),但我不是专家,在互联网上有一些例子,但我自己无法解决这个问题.我也知道一些XPath,但这是4年前,我不是一个关于sapply和类似功能的专家.

但我的目标是:

>我需要删除一组关于位置的XML子分支,例如:< location> ……任何< / location>.可以有多个具有位置数据的节点.我根本不需要输出中的细节.上面的XML文件始终符合XSD架构.根节点称为< clinical_study>.
>生成的简化文件应写入名为“data-changed.xml”的新XML文件中.
>我还需要重命名并从旧的嵌套位置移动一个分支

<合格>
   <标准>
     <正文块>
       包含标准是xyz
     < /正文块/> …
>在新输出(“data-changed.xml”)中,结构应该说不同的XML节点并且直接位于根节点下:

< eligibility_criteria>
   包含标准是xyz
< / eligibility_criteria>

所以我需要:

>将XML读入内存
>操纵树(在某处修剪)
>将一些XML节点移动到一个新的位置并以新的名称和
>编写生成的XML输出文件.

任何想法都非常感谢?

另外,如果您了解一个关于R内部XML解析的好(最近的!)教程(或者解决它的书籍章节,请分享参考). (我读过Duncan的小插曲,这些太过于先进(太简洁)).

最佳答案
删除所有位置节点的代码:

r <- xmlRoot(doc)
removeNodes(r[names(r) == "location"])

转载注明原文:如何读取XML输入文件,操作一些节点(删除并重命名一些)并将输出写入新的XML输出文件? - 代码日志