Sql SSIS-XML任务-XSLT操作
我在SQLServer的变量中有一个值(整数) 以及包含大量元素的XML文件。其中一个元素有一个值。我需要将这个值替换为变量值 我不知道如何使用XML任务-XSLT转换 例如: 变量值:12345Sql SSIS-XML任务-XSLT操作,sql,xml,xslt,ssis,Sql,Xml,Xslt,Ssis,我在SQLServer的变量中有一个值(整数) 以及包含大量元素的XML文件。其中一个元素有一个值。我需要将这个值替换为变量值 我不知道如何使用XML任务-XSLT转换 例如: 变量值:12345 XML元素:00000 我需要: 12345 谢谢你的提示和技巧 您真正要问的是如何将SSIS中的参数传递给XML任务XSLT操作 不幸的是,XML任务功能有些有限。它不接受任何XSLT参数 有几种简单的方法可以克服这种限制: 使用参数实现XSLT转换的SSIS脚本任务 SSIS脚本任务,通过LINQ
XML元素:
谢谢你的提示和技巧 您真正要问的是如何将SSIS中的参数传递给XML任务XSLT操作 不幸的是,XML任务功能有些有限。它不接受任何XSLT参数 有几种简单的方法可以克服这种限制:
void Main()
{
const string SOURCEXMLFILE = @"e:\Temp\UniversalShipment.xml";
const string XSLTFILE = @"e:\Temp\UniversalShipment.xslt";
const string OUTPUTXMLFILE = @"e:\temp\UniversalShipment_output.xml";
bool paramXSLT = true;
try
{
XsltArgumentList xslArg = new XsltArgumentList();
if (paramXSLT)
{
// Create a parameter which represents the current date and time.
DateTime d = DateTime.Now;
xslArg.AddParam("date", "", d.ToString());
}
using (XmlReader src = XmlReader.Create(SOURCEXMLFILE))
{
XslCompiledTransform xslt = new XslCompiledTransform();
xslt.Load(XSLTFILE, new XsltSettings(true, true), new XmlUrlResolver());
XmlWriterSettings settings = xslt.OutputSettings.Clone();
settings.IndentChars = "\t";
// to remove BOM
settings.Encoding = new UTF8Encoding(false);
using (XmlWriter result = XmlWriter.Create(OUTPUTXMLFILE, settings))
{
xslt.Transform(src, xslArg, result, new XmlUrlResolver());
result.Close();
}
}
Console.WriteLine("File '{0}' has been generated.", OUTPUTXMLFILE);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}