添加带引号的属性–;R中的XML
我正在尝试使用XML包在R中构建一个XML文件。(我对这一点非常陌生,我甚至仍在理解XML文件的不同组件,这使事情变得有点复杂)。 第一步非常简单:添加带引号的属性–;R中的XML,r,xml,loops,R,Xml,Loops,我正在尝试使用XML包在R中构建一个XML文件。(我对这一点非常陌生,我甚至仍在理解XML文件的不同组件,这使事情变得有点复杂)。 第一步非常简单: #Create XML file doc_beast <- newXMLDoc() root <- newXMLNode("beast", doc = doc_beast) #Write taxa node taxaNode <- newXMLNode("taxa", parent = root, attrs = c(id="t
#Create XML file
doc_beast <- newXMLDoc()
root <- newXMLNode("beast", doc = doc_beast)
#Write taxa node
taxaNode <- newXMLNode("taxa", parent = root, attrs = c(id="taxa"))
taxa <- getNodeSet(doc_beast, "//beast/taxa")
for(i in 1:nrow(metadata)) {
newXMLNode("taxon", parent = taxa)
}
doc_beast
数据帧是这样的:
species_name <- c('sp1', 'sp2', 'sp3')
lat <- c(-3.16, -0.56, -2.1)
long <- c(-59.90, -52.57, -60.2)
metadata <- data.frame(species_name,lat,long)
species\u name调用newXMLNode
时,可以传递attrs=
属性来设置节点上的属性。所以你可以
for(i in 1:nrow(metadata)) {
newXMLNode("taxon", parent = taxa,
attrs = list(id=as.character(metadata$species_name[i])))
}
这会回来的
<?xml version="1.0"?>
<beast>
<taxa id="taxa">
<taxon id="sp1"/>
<taxon id="sp2"/>
<taxon id="sp3"/>
</taxa>
</beast>
应该是id=“sp_1”>
吗?是的,你是对的。谢谢
species_name <- c('sp1', 'sp2', 'sp3')
lat <- c(-3.16, -0.56, -2.1)
long <- c(-59.90, -52.57, -60.2)
metadata <- data.frame(species_name,lat,long)
for(i in 1:nrow(metadata)) {
newXMLNode("taxon", parent = taxa,
attrs = list(id=as.character(metadata$species_name[i])))
}
<?xml version="1.0"?>
<beast>
<taxa id="taxa">
<taxon id="sp1"/>
<taxon id="sp2"/>
<taxon id="sp3"/>
</taxa>
</beast>