gpt4 book ai didi

xml - 使用 R 生成 XML

转载 作者:行者123 更新时间:2023-12-02 21:07:31 25 4
gpt4 key购买 nike

我使用以下代码使用 R 生成 XML 文件..

# R 
prefix.xml <- "<reports>
<report type='standard'>
<data> xxx </data>
<data> xxx </data>
<data> xxx </data>
</reports>"

# dummy data.frame
df <- data.frame("xxx","yyy")

# buid XML Tree
xml <- xmlTree()
xml$addTag("report", close=FALSE, attrs=c(type="enhanced"))
xml$addTag("pages", close=FALSE)
for (i in 1:nrow(df)) {
xml$addTag("page", close=FALSE)
for (j in names(df)) {
xml$addTag(j, df[i, j])
}
xml$closeTag()
}
xml$closeTag()
xml$closeTag()

# view XML generated
cat(saveXML(xml, prefix = prefix.xml))

# <reports>
# <report type='standard'>
# <data> xxx </data>
# <data> xxx </data>
# <data> xxx </data>
# </report>
# <report type="enhanced">
# <pages>
# <page>
# <X.xxx.>xxx</X.xxx.>
# <X.yyy.>yyy</X.yyy.>
# </page>
# </pages>
# </report>

这会生成一些非常接近我正在寻找的 XML。但是,因为我定义了一个复杂的前缀,所以我保留了开放的 XML 标记。如果您看一下这个示例,很容易看出我需要关闭“报告”标签。如何在 R 中将结束 XML 标记附加到此 xml 对象?

最佳答案

使用 XML 包,请考虑使用 newXMLNode() 将节点添加到 prefix.xml :

library(XML)

# XML STRING
prefix.xml <- "<reports>
<report type='standard'>
<data> xxx </data>
<data> xxx </data>
<data> xxx </data>
</report>
</reports>"

# DUMMY DATA FRAME
df <- data.frame("xxx","yyy")

# BUILD XML TREE
doc = xmlTreeParse(prefix.xml, useInternalNodes = T) # PARSE STRING
root = xmlRoot(doc) # FIND ROOT

reportNode = newXMLNode("report", parent=root) # ADD TO ROOT
xmlAttrs(reportNode) = c(type = "enhanced") # ADD ATTRIBUTE
pagesNode = newXMLNode("pages", parent=reportNode) # ADD TO REPORT

for (i in 1:nrow(df)){
pageNode = newXMLNode("page", parent=pagesNode) # ADD PAGE FOR EACH RECORD
for (j in 1:nrow(df)){
newXMLNode("X.xxx.", df$X.xxx.[i], parent=pageNode) # ADD COL/ROW VALUE
newXMLNode("X.yyy.", df$X.yyy.[i], parent=pageNode) # ADD COL/ROW VALUE
}
}

# VIEW XML
print(doc)

# SAVE XML TO FILE
saveXML(doc, file="OutputFile.xml")

#<?xml version="1.0"?>
#<reports>
# <report type="standard">
# <data> xxx </data>
# <data> xxx </data>
# <data> xxx </data>
# </report>
# <report type="enhanced">
# <pages>
# <page>
# <X.xxx.>xxx</X.xxx.>
# <X.yyy.>yyy</X.yyy.>
# </page>
# </pages>
# </report>
#</reports>

关于xml - 使用 R 生成 XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35303085/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com