大家都在努力解决这个问题。我有一个foreach循环,它将循环遍历包含xml文件的文件夹,我想将数据导入数据库。问题是xml文件有一个dtd,我无法阻止它被附加到xml文件。所以我需要一些方法来删除dtd。我搜索谷歌和各种论坛,并出现空白。只是想知道是否有人有任何想法?
答案 0 :(得分:1)
我在我的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;
}
答案 1 :(得分:0)
我会寻找您首选的编程或脚本语言(.NET,Perl,无论如何)的解决方案,然后将其合并到包中。例如,使用Execute Process任务调用命令行工具或使用标准.NET XML支持的脚本任务。