【问题标题】:How to extract file properties of multiple XML files and combine them with the XML extracted data (Using R)如何提取多个 XML 文件的文件属性并将它们与 XML 提取的数据组合(使用 R)
【发布时间】:2021-02-11 09:21:58
【问题描述】:

我对 R 相当陌生,需要一些帮助来(提取和)将文件名和属性与从多个 xml 文件(大约 200 个)中提取的数据组合起来,然后将其转换为数据框。

我正在使用以下脚本来选择 xml 文件,提取数据并将其转换为数据框(并且工作正常):

library(XML)
library(plyr)

# Select multiple xml files within directory
FileName <- list.files(pattern = "xml$",
                       ignore.case=TRUE,
                       full.names = FALSE)

# Create function to extract data
RI_ID <-function(FileName) {
  doc1 <- xmlParse(FileName) 
  doc <- xmlToDataFrame(doc1["//ObjectList[@ObjectType='pkg']/o"], )
} 

# Convert to dataframe
T1 <- ldply(FileName,RI_ID)

# Rename columns
names(T1)[names(T1) == "a"] <- "UniqueInstallationPackageID"
names(T1)[names(T1) == "b"] <- "PackageVersion_Latest"

# Convert to numeric
FieldToNumeric <- c("UniqueInstallationPackageID", "PackageVersion_Latest")
T1[,FieldToNumeric] <- lapply(T1[,FieldToNumeric], as.numeric)

我想(并且需要一些帮助):

  • 提取在 Windows 资源管理器中显示的 xml 文件的修改日期;
  • 包括文件名以及修改日期作为最终数据框的一部分。

我已经查看了以下两个来源,但没有成功实施它们:

由于保密协议,我无法分享 xml 文件的示例,但如果需要,可以重命名节点等并提交。感谢您的帮助。

【问题讨论】:

  • xmlToDataFrame() 中末尾的多余逗号似乎不正确。

标签: r xml dataframe filenames file-properties


【解决方案1】:

只需调整RI_ID 方法即可检索这两条信息(使用file.info 和FileName 变量修改日期/时间)并将这些值绑定到xml 数据框的新列中。在transform() 下方允许使用逗号分隔的赋值向数据框中添加列:

# Create function to extract data
RI_ID <-function(FileName) {
  doc <- xmlParse(FileName) 
  df <- transform(xmlToDataFrame(doc["//ObjectList[@ObjectType='pkg']/o"]),
                  file_name = FileName,
                  file_modified = file.info(FileName)$mtime)
} 

【讨论】:

    猜你喜欢
    • 2017-05-26
    • 1970-01-01
    • 1970-01-01
    • 2021-06-01
    • 1970-01-01
    • 2018-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多