如何在R{XML}中编辑XML文件

如何在R{XML}中编辑XML文件,xml,r,Xml,R,我在这方面见过一些类似的线索,但似乎没有一条能准确回答我的问题: 我有一个包含多个“空间”对象的建筑的XML文件。我试图用空格下的“Name”值替换空格的“ID”属性。举一个简单的例子: <Space zoneIdRef="idref text" id="id text"> ... ... ... <Name>"name text"</Name> </Space> 当我在R中检查“root”中的新值时,它似乎已

我在这方面见过一些类似的线索,但似乎没有一条能准确回答我的问题:

我有一个包含多个“空间”对象的建筑的XML文件。我试图用空格下的“Name”值替换空格的“ID”属性。举一个简单的例子:

<Space zoneIdRef="idref text"  id="id text">
    ...
    ...
    ...
     <Name>"name text"</Name>
</Space>
当我在R中检查“root”中的新值时,它似乎已正确更新,但当我编写文件时,它们没有被更改。我想知道是否有比使用“=”更新值更好的方法,或者我没有正确处理文本字符串


谢谢,

简单的作业就足够了

XML:


“名称文本”
代码:

库(XML)

xml您确信(3:3+n-1中的i)
?它不应该是(3中的i:(3+n-1))的
?第一个表达式的计算结果为6,而第二个表达式的计算结果为3:6。就是这样!只是一个愚蠢的小错误,但它现在起作用了-谢谢尼古拉!这要简单得多,但我正在编写的文件中的“id”似乎仍然没有反映任何更改(尽管我可以在R工作区中看到更改)。实际上,这在对我上面问题的评论中得到了回答。
rm(list = ls())

file = "C://Users//ben.brannon//Desktop//Project1.xml"
outfile = "C://Users//ben.brannon//Desktop//Project1_new.xml"

xml = xmlTreeParse(file)
root = xmlRoot(xml)

n=4

for (i in 3:3+n-1)
{
  name = xmlSApply(root[["Campus"]][["Building"]][[i]][["Name"]],xmlValue)
  spaceattrs = xmlAttrs(root[["Campus"]][["Building"]][[i]])

}

saveXML(root, outfile)
<Root>
    <Campus>
        <Building>
            <Space zoneIdRef="idref text"  id="id text">
                <Name>"name text"</Name>
            </Space>
        </Building>
    </Campus>
</Root>
library(XML)

xml <- xmlTreeParse("XML.xml")
root = xmlRoot(xml)
name = xmlValue(root[["Campus"]][["Building"]][["Space"]][["Name"]])

xmlAttrs(root[["Campus"]][["Building"]][["Space"]])[["id"]] <- name