如何使用 SSIS XML 任务来区分 XML 文件?下面的截图向您展示了系统目标文件夹中 books.xml 文件中的数据。

接下来的截图将向您展示我们将在此示例中使用的另一个 XML 文件。我们的 SSIS 任务是查找 books.xml 和 books2.xml XML 文件之间的差异。

使用 SSIS XML 任务区分 XML 文件
要区分 XML 文件,首先将 XML 任务拖放到“控制流”区域,并将其重命名为“使用 SSIS XML 任务区分 XML 文件”。

双击它将打开 XML 任务编辑器进行配置。
在此 SSIS 示例中,我们正在查找 XML 文件之间的差异,因此请将 operationType 属性更改为 Diff。请参阅以下链接以进一步了解 XML 任务。

DiffAlgorithm:SSIS XML 任务为此属性提供了三个不同的选项。Diff 操作可以组织使用不同的比较算法,具体取决于比较是必须“快速”还是“精确”。它还有一个名为“Auto”的选项,如果您不知道选择哪个,请选择 AUTO 选项。
提示:Auto 选项将根据比较文档的大小选择精确或快速比较。

DiffOptions:Diff 操作包含一组选项来自定义 XML 比较。下表描述了可用选项的列表,每个属性都有两个选项:True 和 False。如果我们将其属性设置为 TRUE,DiffOption 将忽略属性的比较。
如果我们将此选项设置为 true,则具有相同本地名称但不同命名空间的两个元素被视为相同。
| DiffOption | 描述 |
|---|---|
| 忽略注释 | 请指定您是否要比较注释节点。 |
| 忽略命名空间 | 请指定您是否要比较元素的命名空间 URI(统一资源标识符)和属性名称。 |
| 忽略前缀 | 请指定您是否要比较元素和属性名称的前缀。如果我们将其设置为 true,则具有相同本地名称但不同前缀的两个元素被视为相同。 |
| 忽略 XML 声明 | 请指定您是否要比较 XML 声明。 |
| 忽略子元素的顺序 | 请指定您是否要比较元素和属性名称的前缀。如果我们将其设置为 true,则具有相同本地名称但不同前缀的两个元素被视为相同。 |
| 忽略空格 | 请指定是否比较空格。 |
| 忽略处理指令 | 请指定您是否要比较处理指令。 |
| 忽略 DTD | 请指定您是否要忽略 DTD。 |

FailOnDifference:此属性有两个选项:True 和 False。如果我们将其设置为 TRUE。如果存在任何 XML 差异,SSIS XML 任务将导致任务失败。现在,我们将属性更改为 TRUE。

在此示例中,让我们将 XML 差异输出存储在 XML 文件中。我们必须将 SaveDiffGram 属性设置为 TRUE 以保存差异并配置 DiffGram 目标。

通过选择 DiffGramSave 属性,让我们配置您想要存储差异的目标路径。
- 如果您想将 XML 差异存储在本地文件系统中的 XML 文件中,请将 DiffGramDestinationType 选择为 File Connection。
- 如果您想将 XML 差异存储在变量中,请将 DiffGramDestinationType 选择为 Variable 并选择变量名称。
在此示例中,我们将 XML 差异存储在 XML_Diff.xml 文件中。因此,我们将 DiffGramDestinationType 属性选择为 File Connection。

如果您之前已经创建了 文件连接管理器,请选择之前创建的。这里,我们还没有创建任何连接管理器,所以我们选择

一旦您单击

让我们通过选择 SourceType 属性来配置源连接。
- 如果您使用本地文件系统中的 XML 文件,请将 Source Connection 选择为 File Connection。
- 如果您将源连接存储在变量中,请将 Source Connection 选择为 Variable 并选择变量名称。
- 而且,如果您想直接输入 XML 数据,请将 SourceType 属性选择为 Direct Input。
在此示例中,我们将上面指定的 books.xml 文件用作源。因此,我们将 SourceType 属性选择为 File Connection。

如果您之前已经创建了 文件连接管理器,请选择之前创建的。我们还没有创建任何连接管理器,所以我们选择

一旦您单击

单击 Browse 按钮可从我们的文件系统中选择现有文件。从下面的屏幕截图中,您可以观察到我们在 Destination Folder 中选择了 books.xml 文件。

我们需要配置第二个 XML 文件,因此请选择 SecondOperandType 属性。
- 如果您使用本地文件系统中的 XML 文件,请将 SecondOperandType 选择为 File Connection。
- 如果您将 XML 文件存储在变量中,请将 SecondOperandType 选择为 Variable 并选择变量名称。
- 而且,如果您想直接输入 XML 数据,请将 SecondOperandType 属性选择为 Direct Input。
在此示例中,我们将上面指定的 books2.xml 文件用作第二个 XML 文件。因此,我们将 SecondOperandType 属性选择为 File Connection。

如果您之前已经创建了 文件连接管理器,请选择之前创建的。这里,我们还没有创建连接管理器。因此,我们选择 SecondOperand 属性旁边的

从下面的屏幕截图中,您可以观察到我们在 Destination Folder 中选择了 books2.xml 文件。

单击 OK 完成配置 SSIS XML 任务以区分 XML 文件包。

让我们运行并查看 books.xml 文件和 books2.xml 文件之间是否存在任何差异。下面的屏幕截图显示我们的 SSIS XML 任务来区分 XML 文件包已失败。这意味着这两个 XML 文件之间存在差异。

让我们打开 XML_Diff.xml 文件,查看两个 XML 文件之间的差异。
