将(部分) XML 数据转换回表格数据或 CSV/制表符分隔数据,无需使用脚本

将(部分) XML 数据转换回表格数据或 CSV/制表符分隔数据,无需使用脚本

有没有一种简单的方法可以将 XML 数据(部分)转换回表格数据,即逗号分隔值、制表符分隔值或 Excel?我有时会收到 XML 日志文件,为了清晰起见并更容易与其他来源进行比较,将数据提取为平面表(例如在 Excel 中)会更容易。

我查看了 XMLtools 插件和其他插件,但找不到任何选项。例如,数据如下:

<ChildTaskStatus>
  <LoadSubStatus>
    <TaskStatus>RanToCompletion</TaskStatus>
    <Template>NL_CM_0_1_1</Template>
    <ItemsTotal>41219</ItemsTotal>
    <ElapsedTime>00:00:04</ElapsedTime>
  </LoadSubStatus>
  <LoadSubStatus>
    <TaskStatus>RanToCompletion</TaskStatus>
    <Template>NL_CM_18_7_1</Template>
    <ItemsTotal>168930</ItemsTotal>
    <ElapsedTime>00:00:53</ElapsedTime>
  </LoadSubStatus>
  <LoadSubStatus>
    <TaskStatus>RanToCompletion</TaskStatus>
    <Template>NL_CM_12_8_1</Template>
    <ItemsTotal>231122</ItemsTotal>
    <ElapsedTime>00:00:43</ElapsedTime>
  </LoadSubStatus>
</ChildTaskStatus>

我只想将数据提取到以下格式(具体格式不重要,任何 csv/tab 分隔或表格格式都可以):

任务状态 模板 商品总数 已用时间
完成时间 NL_CM_0_1_1 41219 00:00:04
完成时间 NL_CM_18_7_1 168930 00:00:53
完成时间 NL_CM_12_8_1 231122 00:00:43

顺便说一句,实际文件显然更大,并且有更多的树节点。

那么,有没有办法轻松地做到这一点,而不必为每个不同的实例编写脚本,例如 Excel 或 Notepad++ 中的选项?我知道我至少必须为四列指定 XML 标签,但我的意思是有没有工具或应用程序可以做到这一点?

答案1

Excel 能够将 XML 数据导入 2007 - 2021 版本以及最新的 Office 365 中的工作表。

加载数据的方法有很多种。它们列在这里。引用最简单的方式:

打开 XML 数据文件以导入其数据

  1. 点击文件>打开

    如果您使用的是 Excel 2007,请单击Microsoft Office 按钮>打开

  2. 在里面打开对话框中,单击包含要打开的文件的驱动器、文件夹或 Internet 位置。

  3. 选择文件并单击打开

  4. 如果导入 XML出现对话框,您打开的文件引用一个或多个可扩展样式表语言转换 (XSLT) 样式表,因此您可以单击以下选项之一:

  • 不应用样式表打开文件- XML 数据导入到二维表中,该表包含行和列,XML 标记显示为列标题,数据显示在列标题下方的行中。第一个元素(根节点)用作标题,并显示在指定的单元格位置。其余标记按字母顺序排列在第二行中。在这种情况下,Excel 不会推断架构,您不能使用 XML 映射。

  • 打开应用以下样式表的文件(选择一个)-
    选择要应用的样式表,然后单击“确定”。 XML 数据将根据您选择的样式表进行格式化。

    笔记:XML 数据在 Excel 中以只读方式打开,这样您就不会意外地将原始源文件保存为 Excel 启用宏的工作簿文件格​​式 (.xlsm)。在这种情况下,Excel 不会推断架构,您无法使用 XML 映射。

  1. 如果打开 XML对话框出现时,XML 文件没有任何 XSLT 样式表引用。要打开该文件,请单击以下选项之一:
  • 点击作为 XML 表在新的工作簿中创建 XML 表。

    文件的内容将导入到 XML 表中。如果 XML 数据文件未引用架构,Excel 将从 XML 数据文件中推断架构。

  • 点击作为只读工作簿。

    XML 数据导入到具有行和列的二维表中,该表将 XML 标记显示为列标题,并将数据显示在列标题下方的行中。第一个元素(根节点)用作标题,并显示在指定的单元格位置。其余标记按字母顺序排列在第二行中。在这种情况下,Excel 不会推断架构,并且您不能使用 XML 映射。XML

    数据在 Excel 中以只读方式打开,因此您不会意外地将原始源文件保存为 Excel 启用宏的工作簿文件格​​式 (.xlsm)。在这种情况下,Excel 不会推断架构,并且您不能使用 XML 映射。

点击使用 XML 源任务窗格。XML

数据文件的架构显示在XML 源任务窗格。然后,您可以将架构的元素拖到工作表中,以将这些元素映射到工作表。

如果 XML 数据文件未引用架构,则 Excel 会从 XML 数据文件中推断架构。

或者只需将文件拖放.xml到新的工作表中。

相关内容