Ошибка разбора xml excel

Обновлено: 07.07.2024

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

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

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

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

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

Ответ:

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

спросил(а) 2014-03-14T14:36:00+04:00 7 лет, 8 месяцев назад

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

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

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

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

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

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

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

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

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

Convert XML to Excel

В виду неудобства просмотра данных в файле XML возникла задача открыть (или импортировать) файл XML в MS Excel. Благо то, что MS Excel поддерживает такие файлы и в нем встроен механизм импорта.

Однако при открытии файла XML в Excel появляется ошибка:

Ошибка в XML - код ошибки -2146697210

Прекращена работа программы Excel

Решение (на примере MS Excel 2016 ):

Произвести импорт данных:

1. Открыть новый документ в Excel (Пустая книга)

Excel - пустая книга

Excel - импорт данных XML

Открытие XML - XML-таблица

Excel окно Импорт данных

Для того, чтобы открыть (импортировать) в Excel несколько файлов необходимо:

Параметры Excel - настройка ленты

Excel - вкладка Разработчик - xml Импорт

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

При наличии карты XML сделайте следующее для импорта данных XML в сопоставленные ячейки:

В карте XML выберите одну из сопоставленных ячеек.

На вкладке Разработчик нажмите кнопку Импорт.

Если вкладка Разработчик не отображается, см. раздел Отображение вкладки "Разработчик".

В диалоговом окне Импорт XML найдите и выберите файл данных XML (XML-файл), который вы хотите импортировать, и нажмите кнопку Импорт.

Другие способы импорта данных XML

Дополнительные сведения о проблемах см. в разделе Типичные проблемы при импорте данных XML в конце этой статьи.

Импорт файла данных XML в качестве XML-таблицы

На вкладке Разработчик нажмите кнопку Импорт.

Если вкладка Разработчик не отображается, см. раздел Отображение вкладки "Разработчик".

В диалоговом окне Импорт XML найдите и выберите файл данных XML (XML-файл), который вы хотите импортировать, и нажмите кнопку Импорт.

Если файл данных XML не ссылается ни на какую схему, Excel создает ее на основе этого файла.

В диалоговом окне Импорт данных выполните одно из следующих действий:

Выберите XML-таблицу на существующем компьютере, чтобы импортировать содержимое файла данных XML в XML-таблицу на вашем компьютере в указанной ячейке.

Чтобы импортировать содержимое файла в XML-таблицу на новом, начиная с ячейки A1, выберите XML-таблицу на новом. Карта файла данных XML отобразится в области задач Источник XML.

Если файл данных XML не ссылается ни на какую схему, Excel создает ее на основе этого файла.

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

Импорт нескольких файлов данных XML

Выберите сопоставленную ячейку, чтобы импортировать несколько XML-файлов в один набор сопоставленных ячеек.

Если вы хотите импортировать несколько XML-файлов в несколько наборов сопоставленных ячеек, щелкните любую несопоставленную ячейку листа.

На вкладке Разработчик нажмите кнопку Импорт.

Если вкладка Разработчик не отображается, см. раздел Отображение вкладки "Разработчик".

В диалоговом окне Импорт XML найдите и выберите файл данных XML (XML-файл), который вы хотите импортировать.

Если файлы являются смежными, нажмите клавишу SHIFT, а затем щелкните первый и последний файл в списке. Все данные из XML-файлов будут импортированы и добавлены в сопоставленные ячейки.

Если файлы не являются смежными, нажмите клавишу CTRL, а затем щелкните все файлы списка, которые вы хотите импортировать.

Если вы выбрали несколько файлов, появится диалоговое окно Импорт <>.xml файл. Выберите карту XML, соответствующую импортируемому файлу данных XML.

Чтобы использовать одну карту для всех выделенных файлов, которые еще не были импортированы, установите флажок Использовать эту карту XML для всех выбранных файлов этой схемы.

Импорт нескольких файлов данных XML в качестве внешних данных

Если нужно импортировать несколько XML-файлов с одним пространством имен, но с разными схемами XML, вы можете воспользоваться командой Из импорта данных XML. Excel создаст уникальную карты XML для каждого импортируемого файла данных XML.

Примечание: При импорте нескольких XML-файлов, в которых не определено пространство имен, считается, что они используют одно пространство имен.

Если вы используете Excel с подпиской наMicrosoft 365, щелкните Данные > Получить данные > из файла > из XML.

Если вы используете Excel 2016 или более раннюю версию, на вкладке Данные нажмите кнопку Из других источников, а затем щелкните Из импорта данных XML.

Выберите диск, папку или расположение в Интернете, где находится файл данных XML (XML-файл), который вы хотите импортировать.

Выберите файл и нажмите кнопку Открыть.

В диалоговом окне Импорт данных выберите один из следующих параметров:

В XML-таблицу в существующей книге. Содержимое файла импортируется в новую таблицу XML на новом листе. Если файл данных XML не ссылается ни на какую схему, Excel создает ее на основе этого файла.

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

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

Чтобы контролировать поведение данных XML, таких как привязка, форматирование и макет, нажмите кнопку Свойства ,чтобы отобразить диалоговое окно Свойства карты XML. Например, при импорте данных по умолчанию существующие данные в соеченом диапазоне перезаписываются, но это можно изменить.

Открытие файла данных XML для импорта данных

Выберите команду Файл > Открыть.

Если вы используете Excel 2007, нажмите Microsoft Office кнопку >открыть.

В диалоговом окне Открытие файла выберите диск, папку или веб-адрес, где расположен нужный файл.

Выберите файл и нажмите кнопку Открыть.

Если появится диалоговое окно Импорт XML, открытый файл ссылается на одну или несколько таблиц стилей XSLT, поэтому можно щелкнуть один из следующих параметров:

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

Открыть файл, применив следующую таблицу стилей (выберите одну). Выберите таблицу стилей, которую вы хотите применить, и нажмите кнопку ОК. Данные XML будут отформатированы в соответствии с выбранным листом стилей.

Примечание: Данные XML будут открыты в Excel в режиме "только для чтения", что позволяет предотвратить случайное сохранение первоначального исходного файла в формате книги Excel с поддержкой макросов (XLSM). В этом случае схема не создается и вы не можете использовать карту XML.

Если появится диалоговое окно Открыть XML, в XML-файле не будет ссылок на таблицу стилей XSLT. Чтобы открыть файл, выберите один из следующих параметров:

Щелкните XML-таблица для создания XML-таблицы в новой книге.

Содержимое файла импортируется в XML-таблицу. Если файл данных XML не ссылается ни на какую схему, Excel создает ее на основе этого файла.

Выберите в качестве книги, которая будет работать только для чтения.

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

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

Щелкните Использовать область задач XML-источника.

Карта файла данных XML отобразится в области задач Источник XML. Для сопоставления элементов схемы с листом их можно перетащить на лист.

Если файл данных XML не ссылается ни на какую схему, Excel создает ее на основе этого файла.

Распространенные проблемы при импорте данных XML

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

Ошибка при проверке схемы

Когда вы выбрали в диалоговом окне Свойства карты XML параметр Проверять данные на соответствие схеме при импорте и экспорте, данные были импортированы, но не проверены на соответствие указанной карте XML.

Некоторые данные были импортированы как текст

Часть импортированных данных или все данные были преобразованы из объявленного типа в текст. Чтобы использовать эти данные в вычислениях, необходимо преобразовать их в числа или даты. Например, значение даты, преобразованное в текст, не будет работать должным образом в функции ГОД, пока вы не преобразуйте его в тип данных "Дата". Excel преобразует данные в текст в следующих случаях:

Данные в формате, который Excel не поддерживается.

Ошибка разбора XML

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

Не удается найти карту XML, соответствующую этим данным

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

Не удается изменить размер XML-таблицы для включения данных

Указанный XML-файл не ссылается на схему

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

Примечание: Схему, созданную Excel, невозможно экспортировать в качестве отдельного файла данных схемы XML (XSD-файла). Хотя существуют редакторы схем XML и другие способы создания файлов схемы XML, возможно, вы не имеете к ним доступа или не знаете, как ими пользоваться.

Выполните следующие действия, чтобы удалить из книги схему, созданную Excel:

На вкладке Разработчик выберите команду Источник.

Команды XML на вкладке "Разработчик"

Если вкладка Разработчик не отображается, см. раздел Отображение вкладки "Разработчик".

В области задач Источник XML выберите пункт Карты XML.

В диалоговом окне Карты XML щелкните карту XML, созданную Excel ,и нажмите кнопку Удалить.

Возникают проблемы при импорте нескольких XML-файлов, которые используют одно пространство имен, но разные схемы

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

Если нужно импортировать несколько XML-файлов с одним пространством имен, но с разными схемами XML, вы можете воспользоваться командой Из импорта данных XML (выберите Данные > Из других источников). Эта команда позволяет импортировать несколько XML-файлов с одним пространством имен и разными схемами XML. Excel создаст уникальную карты XML для каждого импортируемого файла данных XML.

Примечание: При импорте нескольких XML-файлов, в которых не определено пространство имен, считается, что они используют одно пространство имен.

Отображение вкладки "Разработчик"

Если вкладка Разработчик недоступна, выполните следующие действия, чтобы открыть ее.

В Excel 2013 и Excel 2010

Выберите Файл > Параметры.

Щелкните категорию Настроить ленту.

В разделе Основные вкладки установите флажок Разработчик и нажмите кнопку ОК.

Выберите категорию Основные.

В разделе Основные параметры работы с Excel установите флажок Показывать вкладку "Разработчик" на ленте и нажмите кнопку ОК.

Следующие проблемы с экспортом могут возникать, если вы хотите убедиться, что карта XML позволяет экспортировать данные XML.

Сопоставление XML невозможно экспортировать, если не удается сохранить связь сопоставленного элемента с другими элементами. Отношение может не сохраниться по следующим причинам.

Определение схемы для mapped-элемента содержится в последовательности, для которой истинно следующее:

Атрибут maxoccurs не равен 1.

В последовательности определено несколько прямых элементов, или в качестве прямого ребенка имеется другой compositor.

Неповторяющиеся элементы одного уровня с одним и тем же повторяющимся родительским элементом сопоставлены с разными XML-таблицами.

Несколько повторяюющихся элементов соблюстися с одной и той же XML-таблицей, и повторение не определено элементом предшественника.

Дочерние элементы разных родительских элементов сопоставлены с одной и той же XML-таблицей.

Кроме того, содержимое сопоставления XML невозможно экспортировать, если содержимое содержит одну из следующих конструкций схемы XML:

Список списков. Один список элементов содержит второй список элементов.

Ненормализованные данные XML-таблица содержит элемент, который, как определено в схеме, должен происходить один раз (атрибут maxoccurs имеет 1). При добавлении такого элемента в XML-таблицу столбец таблицы заполняется несколькими его экземплярами.

Выбор Это картографский элемент, который является частью< выбора> схемы.

Дополнительные сведения см. в экспорте данных XML.

Карта XML, связанная с этой XML-таблицей, содержит один или несколько необходимых элементов, которые не были связаны с XML-таблицей.

В иерархическом списке элементов в области задач Источник XML необходимые элементы обозначены красной звездочкой в правом верхнем углу значка слева от каждого элемента. Чтобы соповести необходимый элемент, перетащите его в нужное место на нем.

Элемент представляет собой рекурсивную структуру.

Типичный пример рекурсивной структуры — иерархия сотрудников и руководителей, в которой одни и те же XML-элементы вложены на нескольких уровнях. Несмотря на то, что в области задач Источник XML могут быть соещины все элементы, Excel не поддерживает рекурсивные структуры глубиной более одного уровня и поэтому не может соендировать все элементы.

XML-таблица содержит смешанное содержимое.

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

Дополнительные сведения см. в экспорте данных XML.

Дополнительные сведения

Вы всегда можете задать вопрос специалисту Excel Tech Community или попросить помощи в сообществе Answers community.

Читайте также: