xml - 将数据框转换为 XML

标签 xml r dataframe

我有一个看起来像这样的数据框 df :

    CODE     GROUP      SET 
1   100      6000       20
2   100      7000       30
3   200      8000       40

如何根据下面的示例通过管道分隔和包装数据框行?

<rows>
<row>100|6000|20</row>
<row>100|7000|30</row>
<row>200|8000|40</row>
<rows>

最佳答案

您可以使用 xmlOutputDOM 函数。它使用各种方法创建一个对象来创建 XML:

myDF <- read.table(text = "    CODE     GROUP      SET 
1   100      6000       20
2   100      7000       30
3   200      8000       40", header = TRUE)

library(XML)
con <- xmlOutputDOM(tag="rows")
apply(myDF, 1, function(x){
  con$addTag("row", paste(x, collapse = "|"))
})


> (myXML <- con$value())
<rows>
  <row>100|6000|20</row>
  <row>100|7000|30</row>
  <row>200|8000|40</row>
</rows>

要将创建的 XML 输出为字符,您可以使用 saveXML:

> cat(saveXML(myXML))
<?xml version="1.0"?>
<rows>
 <row>100|6000|20</row>
 <row>100|7000|30</row>
 <row>200|8000|40</row>
</rows>

关于xml - 将数据框转换为 XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26886102/

相关文章:

xml - 如何在 JSON 中表达 XML 标记属性?

java - XML 到 JSON getJSONArray() 问题

r - 在特定条件下提取最新条目

python - 从两个现有的 DataFrame 创建一个新的 DataFrame

c# - XPathExpression AddSort 失败

html - 如何转义字符串以用于 Scala 中的 XML/HTML 文档?

r - 在 R 中按组有效地存储数据

r - 绘图随机性

pandas - 如何通过数据框中的数据计算频率?

python - 通过 if 条件将 pandas 数据框的值附加到列表