使用SSIS填充XML文件

时间:2011-10-10 13:12:32

标签: xml ssis

在以下blog的帮助下:我创建了一个SQL Server Integration Services(SSIS)包。从.txt文件中读取我能够创建一个相对XML文件并将其保存在特定路径中。

但是,由于我必须遍历50个或更多txt文件并为每个文件生成一个相对的xml文件,我希望能够使用相同的输入名称自动保存xml文件。

我已经看到使用foreach循环我可以将“.txt”设置为输入文件,但如何指定动态获取xml输出文件的输入文件名?
目前我使用硬编码路径作为文件连接管理器,用于设置输出xml文件路径。

此外,不是通过VB脚本创建xml文件,而是可以创建XML模板并使用SSIS相应地填充特定的关键字吗?
类似的东西:

<root>
  <product>
      <name>[Prod_Name]</name>
      <qty>[Prod_Qty]</qty>
  </product>
</root>

2 个答案:

答案 0 :(得分:2)

在脚本任务中使用System.IO.Path.GetFileNameWithoutExtension:

Public Sub Main()
    Dim infile As String = CStr(Dts.Variables("InputFile").Value)
    Dim outfile As String = System.IO.Path.GetFileNameWithoutExtension(infile) + ".xml"
    Dts.Variables("OutputFile").Value = outfile
    Dts.TaskResult = ScriptResults.Success
End Sub

答案 1 :(得分:0)

在这里,我发布我的解决方案,以防它可能帮助其他人。 正如评论中所说,我使用脚本转换来动态创建xml标签:

With xmlWriter            
 .Write(FormatElement("rdf:Description rdf:about=""" + Me.Variables.strFileName + """ "))
 .Write(FormatElement("Date") + "" + FormatElement("Date", True))
 .Write(FormatElement("ValidFrom") + "" + FormatElement("ValidFrom", True))
 .Write(FormatElement("ValidTo") + "" + FormatElement("ValidTo", True))

  ....

End With