向R中xml的节点添加兄弟节点

zpqajqem  于 2023-01-18  发布在  其他
关注(0)|答案(1)|浏览(149)

如何给R中a1和a2节点添加兄弟节点?
输入:<a><a1>123</a1> <a2>222</a2> </a>
目标<a><a1>123</a1> <a2>222</a2> <a3>222</a3> </a>

library(xml2)
x <- read_xml("<a><a1>123</a1> <a2>222</a2>  </a>"); 
xml_add_sibling(xml_child(x), "<a3>string</a3>"); 
x

目前,它的产出如下:<a><a1>123</a1> <<a3>string</a3>/> <a2>222</a2> </a>.
为什么还有</>?谢谢。

sd2nnvve

sd2nnvve1#

您没有正确使用函数参数。xml_add_sibling中的第二个参数是.value,应该是标记名。您没有给标记名a3,而是给它标记名<a3>string</a3>,这就是为什么出现了额外的尖括号。
只需将标记名a3传递给.value参数,然后按照文档中的建议,在随后的未命名参数中输入标记的内容:
.value 要插入的节点。
... 如果是要在节点上设置的命名属性或命名空间,如果是要分配给节点的未命名文本。

library(xml2)

x <- read_xml("<a><a1>123</a1> <a2>222</a2>  </a>")
xml_add_sibling(xml_child(x), .value = "a3", 'string')
x
#> {xml_document}
#> <a>
#> [1] <a1>123</a1>
#> [2] <a3>string</a3>
#> [3] <a2>222</a2>

相关问题