我有一堆数字
preKId_2015 = c(242938L, 339402L, 361888L, 428033L, 442546L, 309790L, 355662L,
458179L, 465105L, 490383L, 524644L, 526614L, 539453L, 555516L,
569709L)
我有一个xml文件,其中包含元素之间的其他id值
<input-id>
"PreKId"
12344
33433
23343
93893
23333
</input-id>
我正在尝试使用preKId_2015中的值替换这些预先存在的值。我试过了
doc <- xmlParseDoc("C:/... ProjectKids/test12.xml")
nodes <- getNodeSet(doc, "//input-id")[[1]]
xmlValue(nodes) = replace(xmlValue(nodes),xmlValue(nodes),preKId_2015)
我收到警告,没有任何反应
Warning message:
In replace(xmlValue(nodes), xmlValue(nodes),preKId_2015) :
number of items to replace is not a multiple of replacement length
需要帮助
答案 0 :(得分:1)
在插入新节点之前尝试removeChildren
:
doc <- xmlParseDoc("C:/... ProjectKids/test12.xml")
nodes <- getNodeSet(doc, "//input-id")[[1]]
removeChildren(ns, .all=TRUE)
# as sub-elements
kids <- lapply( preKId_2015, function(x) newXMLNode("id", x ))
addChildren(ns, kids = kids, append = FALSE)
# or insert it as text node:
addChildren(ns, newXMLTextNode(paste(preKId_2015, collapse = "\n")))