Ошибка -1072896636 "Запрещено DTD" при открытии XML-файла в Excel, что мне делать?

Я пытаюсь открыть файл XML в Excel 2013, но он говорит, что не может этого сделать, потому что "DTD запрещен". Я искал решение, но все, что я нашел, - это некоторые фрагменты кода, которые должны решить проблему.

Но я совсем не понимаю! Какой код? Я просто открываю файл, я не пишу программу или что-то еще. Должен ли я читать этот код вслух перед открытием файла или что? Извините, но я нахожу это действительно абсурдным.

Есть ли какое-то решение, чтобы просто открыть файл без написания программы для него? И если нет, что мне делать с этим кодом?

Код, о котором я говорю, следующий

Set xmlDoc = CreateObject("Msxml2.DOMDocument.6.0")
xmlDoc.setProperty "ProhibitDTD",False
xmlDoc.load xmltoload.xml

Я обнаружил, что файл может быть открыт в Word, а не в Excel, но Word 2013 выдает мне ту же ошибку.

Ответ:
Оказалось, что файл должен был быть открыт в Excel в конце концов. Я обнаружил в Интернете, что Office 2007 и старше не запрещает DTD, что бы это ни было. Поэтому я успешно обошел проблему, открыв нужный файл в Excel 2003.

3 ответа

Обходной путь довольно прост, откройте файл XML и удалите строку, которая ссылается на местоположение DTD. Excel создаст схему XML в соответствии с вашим файлом XML.

Все документы XML основаны на определении того, какие поля могут существовать и какие значения могут существовать в каждом из этих полей. Они определяются в каждом файле XML путем ссылки либо на определение типа документа ("DTD"), либо на файл схемы XML.

Насколько я понимаю, Excel 2007 и более поздние версии НЕ поддерживают DTD. Вместо этого они ожидают, что ваш XML-файл будет ссылаться на XML-схему.

Итак, ваша основная проблема заключается в том, что ваш XML-файл ссылается на DTD-файл, и вам необходимо преобразовать DTD-файл в XML-файл схемы (это можно проверить, открыв документ с помощью программы, такой как Notepad++, и просмотрев необработанный текст.)

Есть много инструментов, которые помогут вам сделать это, но, честно говоря, я пытался заставить их всех работать в течение нескольких часов, и до сих пор у меня нет Excel, открывающего мой XML (наткнулся на этот пост, гуглял то же самое код ошибки.)

Если вы просто пытаетесь открыть файл XML один раз, вы, вероятно, не захотите вкладывать в него столько усилий, но если я найду быстрое и простое решение, я приду к обновлению.

Если вам просто нужно открыть его, вы можете скачать бесплатную программу, которая конвертирует XML в CSV:

http://xmltocsv.codeplex.com/

Я попробовал это, и это сработало замечательно - мой файл сразу открыли в Excel 2013. Проблема решена на данный момент.

Конечно, смысл XML в том, что данные могут относиться к другим данным с контекстом, и они теряются без правильной схемы или файла DTD. Но если вы просто хотите, чтобы файл открылся, это должно сработать на данный момент (для тех, у кого до сих пор нет Excel 2003, хотя я полагаю, что это так же просто для вас).

Недавно я видел эту ошибку в версиях Excel ClickOnce, связанных с учетными записями Office365. Это не влияет на версии Excel, которые распространяются через CD/ISO. Вы можете узнать разницу между этими двумя номерами версий.

Перейти к файлу | Аккаунт | Нажмите кнопку "Об Excel"

  • 16.0.4456.1003 - CD / ISO
  • 16.0.7571.7063 - ClickOnce

Ошибка возникает, когда файл XML не имеет DTD и файла схемы XML. При попытке обновить подключения к данным вы получаете ошибку DTD. Если вы действительно отредактируете запрос XML, данные действительно обновятся. Я подозреваю, что это ошибка.

Другие вопросы по тегам