Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ssis 从XML SSI中删除DTD_Ssis_Dtd - Fatal编程技术网

Ssis 从XML SSI中删除DTD

Ssis 从XML SSI中删除DTD,ssis,dtd,Ssis,Dtd,大家好,我正在为这件事挣扎。我有一个foreach循环,它将在一个包含xml文件的文件夹上循环,我想将这些文件中的数据导入数据库。问题是xml文件有dtd,我无法阻止它附加到xml文件。所以我需要一些方法来移除dtd。我搜索了谷歌和各种论坛,结果一无所获。只是想知道是否有人有什么想法?我会用您喜欢的编程或脚本语言(.NET、Perl等)寻找解决方案,然后将其合并到包中。例如,使用执行过程任务调用命令行工具,或使用标准.NET XML支持的脚本任务。我想出了一个很好的解决方案,在我的ssis中使用

大家好,我正在为这件事挣扎。我有一个foreach循环,它将在一个包含xml文件的文件夹上循环,我想将这些文件中的数据导入数据库。问题是xml文件有dtd,我无法阻止它附加到xml文件。所以我需要一些方法来移除dtd。我搜索了谷歌和各种论坛,结果一无所获。只是想知道是否有人有什么想法?

我会用您喜欢的编程或脚本语言(.NET、Perl等)寻找解决方案,然后将其合并到包中。例如,使用执行过程任务调用命令行工具,或使用标准.NET XML支持的脚本任务。

我想出了一个很好的解决方案,在我的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;
        }