【发布时间】:2021-10-06 19:11:58
【问题描述】:
我正在使用 R 的 xml2 包来编辑 XML 文档。我想添加一个具有特定 XML 属性的节点,但我似乎不明白 add_child_node 的语法。
添加节点效果很好:
library(xml2)
my_xml <- read_xml("<fruits><apple/><banana/></fruits>")
xml_add_child(.x = my_xml, .value = "coconut")
my_xml
# {xml_document}
# <fruits>
# [1] <apple/>
# [2] <banana/>
# [3] <coconut/>
根据我对文档的理解,我应该能够通过使用 ellipsis 参数向节点添加一个属性,以提供一个命名的文本向量:
my_xml <- read_xml("<fruits><apple/><banana/></fruits>")
xml_add_child(.x = my_xml, .value = "coconut", c(id="new"))
my_xml
# {xml_document}
# <fruits>
# [1] <apple/>
# [2] <banana/>
# [3] <coconut>new</coconut>
但是,这似乎只是将文本插入节点,就像文本未命名时一样。该属性根本不显示。
我想要的是这个:
# {xml_document}
# <fruits>
# [1] <apple/>
# [2] <banana/>
# [3] <coconut id="new"/>
有什么想法吗?我知道我可以在事后使用xml_attr<- 手动设置属性,但我的用例不太支持该方法。
【问题讨论】: