Я не совсем уверен, что вы хотите, чтобы произвести, но я могу дать общий пример того, что работает, и несколько догадывается, почему ваши примеры могут поразить ошибки ?
Скажите мой Mashup начинается так:
let
Source = Folder.Files("c:\code\css430\Final_Project\.idea")
in
Source
И я хочу, чтобы загрузить каждую ячейку как XML. Во-первых, я просто нажмите на одной бинарной ячейки, и посмотреть, что UX автоматически генерирует:
let
Source = Folder.Files("c:\code\css430\Final_Project\.idea"),
#"c:\code\css430\Final_Project\ idea\_misc xml" = Source{[#"Folder Path"="c:\code\css430\Final_Project\.idea\",Name="misc.xml"]}[Content],
#"Imported XML" = Xml.Tables(#"c:\code\css430\Final_Project\ idea\_misc xml",null,1252),
#"Changed Type" = Table.TransformColumnTypes(#"Imported XML",{{"Attribute:version", Int64.Type}})
in
#"Changed Type"
Интересный бит, что Xml.Tables
был вызван на [Content]
колонке. Я удалю новые шаги, и добавить пользовательский столбец только для Xml.Tables([Content])
:
let
Source = Folder.Files("c:\code\css430\Final_Project\.idea"),
#"Added Custom" = Table.AddColumn(Source, "Xml", each Xml.Tables([Content]))
in
#"Added Custom"
Если вы хотите сделать больше, чем преобразование просто вызвать Xml.Tables
, а затем добавить дополнительные шаги после нажатия на одну ячейку, скопируйте код , и удалите этапы и поместите все преобразования в функцию Table.AddColumn
.
Только после того, как у вас есть все работающее, затем реорганизуйте аргумент FilePath
вместо жестко заданного пути к файлу.
Некоторые вещи, которые могут быть идя неправильно в ваших примерах:
кода:
(FilePath, FileName) =>
let
Source = Folder.Files(FilePath),
Query1 = (FileName) => ...
означает, что вы объявить две функции, каждая из которых имеет параметр с именем FileName
, который просто будет запутываться позже. Существуют правила для определения того, какой параметр используется, но лучше всего дать им разные имена.
Звонок Xml.Tables
поверх Binary.Combine
почти всегда будет в беде. Если вы скопируете текст двух файлов XML, он не добавит новый XML-файл; это будет ошибка формата. Всегда сначала преобразуйте XML в таблицы M, затем соедините эти таблицы (например, Table.Combine
). Двоичный комбайнер работает нормально для комбинирования двоичных файлов с обычным текстом и CSV, но на самом деле только те типы.
Код Source[Query1]
выглядит, как он будет использовать функцию Query1
что-то на Source
столе, но это на самом деле означает найти "Query1"
столбец таблицы (что вызовет ошибку). Если вы хотите применить функцию преобразования к таблице, возможно, Table.AddColumn
, или, может быть, Table.TransformColumns
У меня XML-файл много, я связал 4 функции, которые извлекают данные из одного xml-файла.Теперь я пытаюсь выполнить 4 функции и сделать запрос папки для обработки всех xml-файлов в папке. – sayth