Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
替换XML节点_Xml_R - Fatal编程技术网

替换XML节点

替换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>

我正在尝试使用XML包编辑KML文件,用另一个节点/子节点替换一个节点/子节点

基本上,我已经尝试了一个简单的替换(
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>