Удалить DTD из XML SSIS - PullRequest
       6

Удалить DTD из XML SSIS

0 голосов
/ 10 августа 2011

Привет всем, я борюсь с этим.У меня есть цикл foreach, который будет перебирать папку, содержащую XML-файлы, которые я хочу импортировать в базу данных.Проблема в том, что у xml-файлов есть dtd, поэтому я ничего не могу сделать, чтобы предотвратить прикрепление этого файла к xml-файлу.Так что мне нужен какой-то способ удаления dtd.Я искал в Google и на различных форумах, но ничего не нашел.Просто интересно, есть ли у кого-нибудь идеи?

Ответы [ 2 ]

1 голос
/ 11 августа 2011

Я нашел хорошее решение в том, что я использую задачу скрипта в моем 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;
        }
0 голосов
/ 10 августа 2011

Я бы искал решение на предпочитаемом вами языке программирования или языке сценариев (.NET, Perl и т. Д.), А затем включил его в пакет.Например, используйте задачу «Выполнение процесса» для вызова инструмента командной строки или задачу «Сценарий», в которой используется стандартная поддержка XML .NET.

...