从XML SSIS中删除DTD

时间:2011-08-10 12:59:58

标签: ssis dtd

大家都在努力解决这个问题。我有一个foreach循环,它将循环遍历包含xml文件的文件夹,我想将数据导入数据库。问题是xml文件有一个dtd,我无法阻止它被附加到xml文件。所以我需要一些方法来删除dtd。我搜索谷歌和各种论坛,并出现空白。只是想知道是否有人有任何想法?

2 个答案:

答案 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支持的脚本任务。