如何使用R的XML包编写RSS格式的XML文档
How to use R's XML package to write an XML document in RSS format
我正在尝试使用 R 的 XML 包创建 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")
这给了我以下输出,它不适用于 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>
我正在尝试使用 R 的 XML 包创建 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")
这给了我以下输出,它不适用于 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>