Новости:

Форум на данный момент в стадии обновления. Если у Вас возникли проблемы со входом в свою учетную запись - просьба писать на email: info@excel-vba.ru

Главное меню

ошибка при загрузке группы файлов xml

Автор adelaur, 20.08.2020, 12:28:18

« назад - далее »

adelaur

Добрый день, при загрузке большого кол-ва файлов xml в power query на этапе показанном на скриншоте , раскрываю колонку "Content" и появляется ошибка : "DataFormat.Error: Сбой обработки XML. Введенные данные недопустимы или не поддерживаются. (Внутренняя ошибка: Непредусмотренное объявление XML. Объявление XML должно быть первым узлом в документе, использование знаков пробела перед ним не допускается., строка 293, позиция 16.)". По одному файлу раскрывает все корректно,если  несколько файлов выдает ошибку. Прикладываю образец с xml файлами . 

Дмитрий Щербаков(The_Prist)

Вы бы хоть пример запроса свой приложили. И версию Excel. потому что я только что загрузил все файлы без проблем. Попробуйте посмотреть шаги запроса и ознакомьтесь со статьей: Получить данные из файлов XML при помощи Power Query
Вдруг свою проблему определите.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...

adelaur

Видео посмотрел, кажется даже пару лет назад я его смотрел и тогда все получилось. Версия excel тогда была старая, power query  приходилось ставить . Сейчас стоит 2016 .Пример запроса это таблица которая должна получиться  ?

Дмитрий Щербаков(The_Prist)

Цитата: adelaur от 20.08.2020, 20:56:19Пример запроса это
Если ВЫ не знаете что такое запрос в PowerQwery - то явно рано начали в нем работать :)
Запрос - это в PowerQwery по сути все, что Вы делаете. Например, подгружаете XML. Все Ваши действия по выполнению этой задачи и есть запрос. Весь текст запроса можно посмотреть с вкладки Главная -Расширенный редактор.
Однако хочется так же спросить: видео посмотрели, статью прочитали - что-то сделать попробовали?
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...

adelaur

#4
Запрос так выглядит :
let
   Источник = Folder.Files("C:\Adelaur\May\J1\EF\Folder 01"),
   #"Комбинированные двоичные значения" = Binary.Combine(Источник[Content]),
   #"Импортированные данные XML" = Xml.Tables(#"Комбинированные двоичные значения")
in
   #"Импортированные данные XML"


Потом внимательней посмотрел статью и увидел это :
[spoiler]Если же после раскрытия значка в столбце Content содержимое наполняется беспорядочным набором символов(вроде ZCHGASsadfajVHHghHHgjJhJJHgjTrTPukhUu), то необходимо удалить последний шаг(в поле примененные шаги) и проделать следующее:
вкладка Добавить столбец(Add Column) -Пользовательский столбец(Custom Column)
в появившемся окне указать имя столбца(я его назвал Данные XML), а в поле Пользовательская формула столбца(Custom column formula) записать следующую формулу:
=Xml.Tables([Content], null, 1251)[/spoiler]
Попробовал, частично помогло :ошибку перестал выдавать, цифры отобразились, а текст наоборот стал "не читаемым"
Запрос стал таким :
let
   Источник = Folder.Files("C:\Adelaur\May\J1\EF\Folder 01"),
   #"Добавлен пользовательский объект" = Table.AddColumn(Источник, "Custom", each Xml.Tables([Content], null, 1251)),
   #"Развернутый элемент Custom" = Table.ExpandTableColumn(#"Добавлен пользовательский объект", "Custom", {"Name", "Table"}, {"Custom.Name", "Custom.Table"}),
   #"Развернутый элемент Custom.Table" = Table.ExpandTableColumn(#"Развернутый элемент Custom", "Custom.Table", {"http://zakupki.gov.ru/oos/types/1", "Attribute:schemeVersion"}, {"Custom.Table.http://zakupki.gov.ru/oos/types/1", "Custom.Table.Attribute:schemeVersion"}),
   #"Развернутый элемент Custom.Table.http://zakupki.gov.ru/oos/types/1" = Table.ExpandTableColumn(#"Развернутый элемент Custom.Table", "Custom.Table.http://zakupki.gov.ru/oos/types/1", {"protocolLot", "protocolPublisher", "purchaseNumber"}, {"Custom.Table.http://zakupki.gov.ru/oos/types/1.protocolLot", "Custom.Table.http://zakupki.gov.ru/oos/types/1.protocolPublisher", "Custom.Table.http://zakupki.gov.ru/oos/types/1.purchaseNumber"}),
   #"Развернутый элемент Custom.Table.http://zakupki.gov.ru/oos/types/1.protocolLot" = Table.ExpandTableColumn(#"Развернутый элемент Custom.Table.http://zakupki.gov.ru/oos/types/1", "Custom.Table.http://zakupki.gov.ru/oos/types/1.protocolLot", {"applications"}, {"Custom.Table.http://zakupki.gov.ru/oos/types/1.protocolLot.applications"}),
   #"Развернутый элемент Custom.Table.http://zakupki.gov.ru/oos/types/1.protocolLot.applications" = Table.ExpandTableColumn(#"Развернутый элемент Custom.Table.http://zakupki.gov.ru/oos/types/1.protocolLot", "Custom.Table.http://zakupki.gov.ru/oos/types/1.protocolLot.applications", {"application"}, {"Custom.Table.http://zakupki.gov.ru/oos/types/1.protocolLot.applications.application"}),
   #"Развернутый элемент Custom.Table.http://zakupki.gov.ru/oos/types/1.protocolLot.applications.application" = Table.ExpandTableColumn(#"Развернутый элемент Custom.Table.http://zakupki.gov.ru/oos/types/1.protocolLot.applications", "Custom.Table.http://zakupki.gov.ru/oos/types/1.protocolLot.applications.application", {"appRating", "winnerPrice"}, {"Custom.Table.http://zakupki.gov.ru/oos/types/1.protocolLot.applications.application.appRating", "Custom.Table.http://zakupki.gov.ru/oos/types/1.protocolLot.applications.application.winnerPrice"}),
   #"Развернутый элемент Custom.Table.http://zakupki.gov.ru/oos/types/1.protocolPublisher" = Table.ExpandTableColumn(#"Развернутый элемент Custom.Table.http://zakupki.gov.ru/oos/types/1.protocolLot.applications.application", "Custom.Table.http://zakupki.gov.ru/oos/types/1.protocolPublisher", {"publisherOrg"}, {"Custom.Table.http://zakupki.gov.ru/oos/types/1.protocolPublisher.publisherOrg"}),
   #"Развернутый элемент Custom.Table.http://zakupki.gov.ru/oos/types/1.protocolPublisher.publisherOrg" = Table.ExpandTableColumn(#"Развернутый элемент Custom.Table.http://zakupki.gov.ru/oos/types/1.protocolPublisher", "Custom.Table.http://zakupki.gov.ru/oos/types/1.protocolPublisher.publisherOrg", {"fullName"}, {"Custom.Table.http://zakupki.gov.ru/oos/types/1.protocolPublisher.publisherOrg.fullName"})
in
   #"Развернутый элемент Custom.Table.http://zakupki.gov.ru/oos/types/1.protocolPublisher.publisherOrg"


Потом  обратил внимание на кодировку, сверил со своими файлами : у  меня UTF-8. Поменял , появилась новая ошибка : "Ошибка выражения: Имя "UTF" не распознано. Убедитесь в том, что оно написано верно."
Запрос :
let
    Источник = Folder.Files("C:\Adelaur\May\J1\EF\Folder 01"),
    #"Добавлен пользовательский объект" = Table.AddColumn(Источник, "Custom", each Xml.Tables([Content], null, UTF-8))
in
    #"Добавлен пользовательский объект"

Дмитрий Щербаков(The_Prist)

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...

adelaur

Все равно выдает ошибку "Ошибка выражения: Имя "UTF8" не распознано. Убедитесь в том, что оно написано верно."
let
    Источник = Folder.Files("C:\Adelaur\May\J1\EF\Folder 01"),
    #"Добавлен пользовательский объект" = Table.AddColumn(Источник, "Custom", each Xml.Tables([Content], null, UTF8))
in
    #"Добавлен пользовательский объект"

Дмитрий Щербаков(The_Prist)

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...

adelaur

Спасибо, теперь все заработало .

Яндекс.Метрика Рейтинг@Mail.ru