带有For循环的SSIS XML任务

时间:2010-09-29 17:57:56

标签: sql-server-2005 ssis

我已经转换了一个XML文件

See this question for a complete description

我想知道的是接受这个xml任务并在For Each循环中执行它。我希望转换特定目录中的所有xml文件,并将生成的文件移动到单独的目录中。

它不起作用。我收到以下错误消息:

Error: 0xC002F304 at XML Task, XML Task: An error occurred with the following error message: "Data at the root level is invalid. Line 1, position 1.".
Error: 0xC002928F at XML Task, XML Task: Property "New Source" has no source Xml text; Xml Text is either invalid, null or empty string.

你能在每个循环中执行xml转换吗?

2 个答案:

答案 0 :(得分:4)

问题是XML Task期望变量包含我试图转换的XML数据。实际上,变量包含指向XML数据的文件名和路径。

我的同事向我展示了修复。

在XML Task中,选择SourceType = File连接。

然后将源设置为指向您的文件。

这是诀窍。在底部,您将看到Connection Manager和inside将是您指向XML任务的文件名。单击文件名(在Connection Manager内),注意将显示属性窗口。

将ConnectionString更改为任何字符串值(我使用“占位符”)。

单击“表达式”旁边的加号,然后添加如下连接字符串: @ [用户::文件名]

在这种情况下,FileName是一个Package变量,它包含xml文件的路径。

答案 1 :(得分:2)

您应该能够在Foreach循环中执行XML任务。错误消息似乎表明XML任务存在源文件问题。您可能需要查看Foreach循环中的文件名如何应用于XML任务中的相应属性。当然,您应该确保Foreach循环正在抓取正确的文件列表。