【发布时间】:2011-08-10 12:59:57
【问题描述】:
大家好,我正在努力解决这个问题。我有一个 foreach 循环,它将遍历包含我想将数据导入数据库的 xml 文件的文件夹。问题是 xml 文件有一个 dtd,我无法阻止它被附加到 xml 文件中。所以我需要一些删除dtd的方法。我搜索了谷歌和各种论坛,并出现空白。只是想知道是否有人有任何想法?
【问题讨论】:
大家好,我正在努力解决这个问题。我有一个 foreach 循环,它将遍历包含我想将数据导入数据库的 xml 文件的文件夹。问题是 xml 文件有一个 dtd,我无法阻止它被附加到 xml 文件中。所以我需要一些删除dtd的方法。我搜索了谷歌和各种论坛,并出现空白。只是想知道是否有人有任何想法?
【问题讨论】:
我想出了一个很好的解决方案,我在我的 ssis 中使用脚本任务,打开文件,删除 dtd,然后保存文件!!
public void Main()
{
try
{
XmlDocument XDoc = new XmlDocument();
XDoc.Load(Dts.Variables["FileName"].Value.ToString());
XmlDocumentType XDType = XDoc.DocumentType;
XDoc.RemoveChild(XDType);
XDoc.Save(Dts.Variables["FileName"].Value.ToString());
}
catch (Exception ex)
{
}
Dts.TaskResult = (int)ScriptResults.Success;
}
【讨论】:
我会在您喜欢的编程或脚本语言(.NET、Perl 等)中寻找解决方案,然后将其合并到包中。例如,使用执行进程任务调用命令行工具,或使用标准 .NET XML 支持的脚本任务。
【讨论】: