#r #xml2
Вопрос:
Я использую xml2
пакет R для редактирования 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<-
, но мой вариант использования не очень хорошо поддерживает этот метод.
Ответ №1:
Просто удалите 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>")
Комментарии:
1. аааааааааа не могу поверить, что я не пробовал этого. Спасибо!