使用 xml2 添加具有属性的子节点

Using xml2 to add child node with an attribute

我正在使用 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/>

根据我对文档的理解,我应该能够通过使用省略号参数提供命名的文本向量来向节点添加属性:

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<- 手动设置属性,但我的用例不能很好地支持该方法。

任何不想打开它的人的文档快照:

只需删除 c()

xml_add_child(.x = my_xml, .value = "coconut", id = "new")

-输出

> my_xml
{xml_document}
<fruits>
[1] <apple/>
[2] <banana/>
[3] <coconut id="new"/>

数据

my_xml <- read_xml("<fruits><apple/><banana/></fruits>")