Ошибка -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:
Я попробовал это, и это сработало замечательно - мой файл сразу открыли в 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, данные действительно обновятся. Я подозреваю, что это ошибка.