1

我有一堆 XML 文件,我想在 SSIS(SQL Server 2014)中转换它们(使用 XSLT 操作)。我已经创建了我的 xsl,并且可以将文件一一转换为我想要的格式。麻烦的是我不知道如何一次转换和移动文件。

到目前为止,我已经尝试了 Foreach 循环容器、XML 任务和文件系统任务来完成这项工作(当然没有运气)。我为文件名创建了一个变量。

已将 Foreach 循环容器配置如下:

  1. Foreach 枚举器中枚举器的文件枚举器(集合选项卡)

  2. 设置目标目录

  3. 映射 FileName 变量

配置 XML 任务如下:

Source ==> 源文件夹中的第一个文件

目标 ==> 文件名变量

SecondOperandType ==> XSL 文件

我不确定下一步该怎么做:

  • 从源目录读取文件

  • 一个一个地转换文件

  • 将转换后的文件移动到目标文件夹

如果有人请帮助并指出正确的方向,我将非常感激。

4

1 回答 1

1

以下步骤将回答您循环使用每个循环容器的文件夹和子文件夹中的所有 xml 文件。

  1. 从工具箱中获取 Foreach 循环容器
  2. 创建四个不同的变量。(注意它们的范围必须是包而不是容器)。
    2a. FilePath - 数据类型字符串 - 值(设置完整的 XML 文件路径,如 c:\data\filexml.xml)
    2b。文件类型 - 数据类型字符串 - 值 (*.xml)
    2c。FileFolderPath - 数据类型字符串 - 值 (C:\Data)
    2d。DestFolderPath - 数据类型字符串 - 值 (C:\TransformedXMLFiles)
  3. 右键单击 Foreach 循环容器,然后单击编辑
  4. Foreach 循环编辑器将弹出
    4a。在左窗格中选择集合。
    4b。在右窗格中,选择枚举器作为 Foreach File Enumerator
    4c。单击表达式 eclipse (...) 三点按钮
    i。选择左侧的目录并将变量设置为@[User::FileFolderPath]
    ii。选择左侧的 FileSpec 并将变量设置为 @[User::FileType]
    4d。
    在检索文件名部分4e中选择“完全限定” 。如果要遍历子文件夹,请选中遍历子文件夹复选框。
    4楼。在左窗格中,选择变量映射
    4g。在变量列下选择 User::FilePath 变量,该变量将用于遍历指定的文件夹和子文件夹中的文件。
    4小时。将 0(零)值放入索引列
  5. 在每个循环中使用您的 XML 源容器
  6. 使用 XSD 或 XSLT 操作
  7. 使用文件系统任务将文件从源移动到目标
于 2019-09-07T13:04:03.180 回答