替换XML节点
我正在尝试使用XML包编辑KML文件,用另一个节点/子节点替换一个节点/子节点 基本上,我已经尝试了一个简单的替换(替换XML节点,xml,r,Xml,R,我正在尝试使用XML包编辑KML文件,用另一个节点/子节点替换一个节点/子节点 基本上,我已经尝试了一个简单的替换(doc[[1]][[1]][[1]][[2]][[2]][[2]]是一个名为“description”的节点,我正试图用一个名为“ExtendedData”的节点替换它): 这段代码精确地构建了我需要的节点。但是doc[[1]][[1]][[1]][[2]][[2]]您可以使用replaceNodes功能: library(XML) myXML <- "<root>
doc[[1]][[1]][[1]][[2]][[2]][[2]]
是一个名为“description”的节点,我正试图用一个名为“ExtendedData”的节点替换它):
这段代码精确地构建了我需要的节点。但是
doc[[1]][[1]][[1]][[2]][[2]]您可以使用replaceNodes
功能:
library(XML)
myXML <- "<root><a>'hello world'</a></root>"
doc <- xmlParse(myXML)
replaceNodes(doc["//a/text()"][[1]], "test")
> doc
<?xml version="1.0"?>
<root>
<a>test</a>
</root>
库(XML)
我用replaceNodes(doc[[1]][[1]][[1]][[2]][[2]][[2]],newNode)
尝试了myXML,但是说我不能用类为c('XMLNode','RXMLAbstractNode','XMLAbstractNode','XMLAbstractNode','oldClass')
的对象。我使用的是xmlTreeParse(),而不是xmlParse()
(不知道这是否重要)
newNode <- removeChildren(addChildren(doc[[1]][[1]][[1]][[2]][[2]], do.call(xmlNode, c('ExtendedData', mapply(function(nome, valor) xmlNode('Data', attrs = c(name = nome), xmlNode('value', valor)), paste(tabela[, 1]), paste(tabela[, 2]), SIMPLIFY = FALSE)))), 'description')
library(XML)
myXML <- "<root><a>'hello world'</a></root>"
doc <- xmlParse(myXML)
replaceNodes(doc["//a/text()"][[1]], "test")
> doc
<?xml version="1.0"?>
<root>
<a>test</a>
</root>