Excel это не сложно
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
18.01.2021, 07:22:40

Войти
Хотите поблагодарить участника за дельный совет? Нажмите [Повысить]. Так вы заслуженно поднимите репутацию активному участнику.
31 739 Сообщений в 5 101 Тем от 11 422 Пользователей
Последний пользователь: hiddenmovie2
*
Перейти на сайт Хитрости Надстройка MulTEx Обучающие тренинги Наша группа ВКонтакте
Правила форума Начало Помощь Поиск Календарь Войти Регистрация Выйти
+  Excel это не сложно
|-+  Основные форумы
| |-+  PowerQuery, PowerPivot, PowerBI и запросы
| | |-+  ошибка при загрузке группы файлов xml
Страниц: [1]   Вниз
Печать
Автор Тема: ошибка при загрузке группы файлов xml  (Прочитано 650 раз)
0 Пользователей и 1 Гость смотрят эту тему.
adelaur
Новичок
*

Репутация: +0/-0
Офлайн Офлайн

Сообщений: 5


Просмотр профиля E-mail
« : 20.08.2020, 12:28:18 »

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

Репутация: +458/-0
Офлайн Офлайн

Сообщений: 5 386



Просмотр профиля WWW
« Ответ #1 : 20.08.2020, 13:21:59 »

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

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Пункты приёма Спасибов:    -41001332272872  -R298726502453
adelaur
Новичок
*

Репутация: +0/-0
Офлайн Офлайн

Сообщений: 5


Просмотр профиля E-mail
« Ответ #2 : 20.08.2020, 20:56:19 »

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

Репутация: +458/-0
Офлайн Офлайн

Сообщений: 5 386



Просмотр профиля WWW
« Ответ #3 : 22.08.2020, 10:01:13 »

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

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Пункты приёма Спасибов:    -41001332272872  -R298726502453
adelaur
Новичок
*

Репутация: +0/-0
Офлайн Офлайн

Сообщений: 5


Просмотр профиля E-mail
« Ответ #4 : 23.08.2020, 01:21:16 »

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


Потом внимательней посмотрел статью и увидел это :
spoiler for Hiden:
Если же после раскрытия значка в столбце Content содержимое наполняется беспорядочным набором символов(вроде ZCHGASsadfajVHHghHHgjJhJJHgjTrTPukhUu), то необходимо удалить последний шаг(в поле примененные шаги) и проделать следующее:
вкладка Добавить столбец(Add Column) -Пользовательский столбец(Custom Column)
в появившемся окне указать имя столбца(я его назвал Данные XML), а в поле Пользовательская формула столбца(Custom column formula) записать следующую формулу:
=Xml.Tables([Content], null, 1251)
Попробовал, частично помогло :ошибку перестал выдавать, цифры отобразились, а текст наоборот стал "не читаемым"
Запрос стал таким :
Код: (vb)
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" не распознано. Убедитесь в том, что оно написано верно."
Запрос :
Код: (vb)
let
    Источник = Folder.Files("C:\Adelaur\May\J1\EF\Folder 01"),
    #"Добавлен пользовательский объект" = Table.AddColumn(Источник, "Custom", each Xml.Tables([Content], null, UTF-8))
in
    #"Добавлен пользовательский объект"
« Последнее редактирование: 23.08.2020, 01:32:50 от adelaur » Записан
Дмитрий Щербаков(The_Prist)
Администратор
Ветеран
*****

Репутация: +458/-0
Офлайн Офлайн

Сообщений: 5 386



Просмотр профиля WWW
« Ответ #5 : 24.08.2020, 11:05:55 »

Уберите тире из UTF-8 - UTF8
Записан

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Пункты приёма Спасибов:    -41001332272872  -R298726502453
adelaur
Новичок
*

Репутация: +0/-0
Офлайн Офлайн

Сообщений: 5


Просмотр профиля E-mail
« Ответ #6 : 25.08.2020, 13:39:46 »

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

Репутация: +458/-0
Офлайн Офлайн

Сообщений: 5 386



Просмотр профиля WWW
« Ответ #7 : 25.08.2020, 13:59:11 »

Код: (vb)
each Xml.Tables([Content], null, TextEncoding.Utf8)) 
Записан

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Пункты приёма Спасибов:    -41001332272872  -R298726502453
adelaur
Новичок
*

Репутация: +0/-0
Офлайн Офлайн

Сообщений: 5


Просмотр профиля E-mail
« Ответ #8 : 25.08.2020, 14:42:23 »

Спасибо, теперь все заработало .
Записан
Страниц: [1]   Вверх
Печать
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2011, Simple Machines Valid XHTML 1.0! Valid CSS!
Яндекс.Метрика Рейтинг@Mail.ru