假设你正在创建一个XML文件,而不仅仅是一个片段:
> results=data.frame(time=date(),p_value=0.99,stringsAsFactors=FALSE)
然后开始一个新的XML树,并添加名称节点到它:
> z = xmlTree("mydata")
Warning message:
In xmlRoot.XMLInternalDocument(currentNodes[[1]]) : empty XML document
> z$addNode("time",results$time)
> z$addNode("p_value",results$p_value)
然后XML的样子:
> cat(xml(z))
<?xml version="1.0"?>
<mydata>
<time>Wed Jan 29 08:24:18 2014</time>
<p_value>0.99</p_value>
</mydata>
见xmlTree
更多的帮助。
如果您想要创建一个包含数据的单个节点,则必须将其包装在更高级别的XML节点中 - 您不能只拥有这样的两个XML结构。因此:
> xmlNode("data",.children=lapply(names(results),function(n){xmlNode(n,results[[n]])}))
<data>
<time>Wed Jan 29 08:24:18 2014</time>
<p_value>0.99</p_value>
</data>
这创建一个名为data
新节点,并随后循环对结果数据帧,用于与合适的名称和值的每个元素创建单个新的节点和将其添加为孩子到data
节点。
'XML'包怎么样? – tonytonov
我正在使用xmlNode从XML包,但我没有得到列的名称,我没有找到如何做到这一点。 – Liron
啊,对不起,你的问题并不明显。您可能想编辑问题以强调您知道如何导出,但在指定标签时遇到问题。那样的话,你更有可能得到更多的关注。 – tonytonov