[英]How to use R's XML package to write an XML document in RSS format
我正在尝试使用 R 的 XML package 创建一个 RSS 文档,但我遇到了麻烦。 这是我正在使用的代码:
df <- data.frame(Labels <- c("Label_1"),
Values <- c("Value_1")
)
# CREATE XML FILE
doc = newXMLDoc()
root = newXMLNode("rss", doc = doc)
# WRITE XML NODES AND DATA
channel = newXMLNode("channel", parent = root)
title = newXMLNode("title","Metrics", parent = channel)
for (i in 1:nrow(df)){
prodNode = newXMLNode("Metric", parent = channel)
# APPEND TO PRODUCT NODE
newXMLNode("description", df$Labels[i], parent = prodNode)
newXMLNode("item", df$Values[i], parent = prodNode)
}
# OUTPUT XML CONTENT TO CONSOLE
print(doc)
# OUTPUT XML CONTENT TO FILE
saveXML(doc, file="RSS_Output.xml")
这给了我以下 output,它不适用于 RSS 解析器,因为除其他外,错误的根节点。 任何想法如何更干净地生成 RSS 文件?
<?xml version="1.0"?>
<rss>
<channel>
<title>Metrics</title>
<Metric>
<description>Label_1</description>
<item>Value_1</item>
</Metric>
</channel>
</rss>
您混合了Metric
和item
节点。 根据RSS
规范(请参阅https://www.w3schools.com/xml/xml_rss.asp ), channel
包含 1 个或多个item
元素
df <- data.frame(Labels <- c("Label_1"),
Values <- c("Value_1")
)
# CREATE XML FILE
doc = newXMLDoc()
root = newXMLNode("rss", doc = doc)
# WRITE XML NODES AND DATA
channel = newXMLNode("channel", parent = root)
title = newXMLNode("title","Metrics", parent = channel)
for (i in 1:nrow(df)){
prodNode = newXMLNode("item", parent = channel)
# APPEND TO PRODUCT NODE
newXMLNode("description", df$Labels[i], parent = prodNode)
newXMLNode("metric", df$Values[i], parent = prodNode)
}
# OUTPUT XML CONTENT TO CONSOLE
print(doc)
# OUTPUT XML CONTENT TO FILE
saveXML(doc, file="RSS_Output.xml")
<?xml version="1.0"?>
<rss>
<channel>
<title>Metrics</title>
<item>
<description>Label_1</description>
<metric>Value_1</metric>
</item>
</channel>
</rss>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.