在以下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>
答案 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