【发布时间】:2017-08-28 20:50:25
【问题描述】:
我正在尝试使用 xml2 使用新节点更新 xml 文件。如果我只是将所有内容手动编写为文本,这很容易,
oldXML <- read_xml("<Root><Trial><Number>3.14159 </Number><Adjective>Fast </Adjective></Trial></Root>")
但我正在开发一个应用程序,它将运行计算,然后将这些值放入 xml,所以我需要混合字符和变量。它最终看起来像:
var1 <- 4.567
var2 <- "Slow"
newLine <- read_xml(paste0("<Trial><Number>",var1," </Number><Adjective>",var2," </Adjective></Trial>"))
xml_add_child(oldXML,newLine)
我怀疑有一种比使用 paste0 更简单的方法,但我无法使用其他任何方法。我希望能够通过引用数据框来指示它更新 xml,以便它可以创建新的试验:
<Trial>
<Number>df$number[1]</Number>
<Adjective>df$adjective[1]</Adjective>
</Trial>
<Trial>
<Number>df$number[2]</Number>
<Adjective>df$adjective[2]</Adjective>
</Trial>
有什么方法可以近似地以这种方式创建新的 Trial 节点,或者至少比使用 paste0 插入变量更自然?这是 XML 包比 xml2 做得更好的东西吗?
【问题讨论】:
-
试试
rio::export(dat, "dat.xml"),看看它是否给你一个你满意的XML文件。 -
错误:'namespace:readxl' 没有导出对象'read_xls'
-
@RichardMNIxon 通过卸载并重新安装
readxl然后在加载rio之前加载它,我解决了这个错误。