Страницы: 1
RSS
PowerQuery. Извлечь данные из параметров тега.
 
Код
<?xml version="1.0" encoding="utf-8"?>
<yml_catalog date="2024-01-18 11:56">
      <categories>
<category id="1906" portal_id="">Ноутбуки</category>
<category id="1909" portal_id="">Мониторы</category>
<category id="1910" portal_id="">Принтеры</category>
      </categories>
      <offers>
         <offer id="44134" available="false">

            <price>2240</price>
            <barcode>005475</barcode>
            <categoryId>1906</categoryId>
            <name>Ноутбук Asus TIT-ROG9G07-CLAU-12</name>
            <description>Описалово</description>
            <vendor>Asus</vendor>
            <param name="Вес">2800 г</param>
            <param name="Водонепроницаемость">IPX-8</param>
            <param name="Экран">18 д</param>
            <param name="Цвет">Черный</param>
            <param name="Процессор">Intel i7-9900</param>
            <param name="Память">12 GB RAM DDR5</param>
            <param name="Порты">HDMI; USB 3.0; SATA</param>
         </offer>

      <offers>

Всем привет!
В тегах param в параметре указаны названия фильтров для интернет магазина. А между тегами param указаны значения этих фильтров.
Посредством PowerQuery все данные из этого xml кода норально извлекаются, кроме param. PowerQuery Умеет извлекать такие данные, чтобы на выходе получить файл как в приложении? Если да, намекните, пожалуйста, что куда смотреть?
 
Доброе время суток.
Вариант
Код
let
    source = Xml.Tables(File.Contents("C:\Users\19691792\Documents\Тестирование\test.xml")){0}[offers],
    expandSource = Table.ExpandTableColumn(source, "offer", {"price", "barcode", "categoryId", "name", "description", "vendor", "param", "Attribute:id", "Attribute:available"}),
    convertParamToRecord = Table.TransformColumns(expandSource, {{
        "param", each Record.FromList(_[#"Element:Text"], _[#"Attribute:name"])
    }}),
    allRecordFieldNames = List.Distinct(List.Combine(List.Transform(convertParamToRecord[param], each Record.FieldNames(_)))),
    toNames = List.Transform(allRecordFieldNames, each "param." & _),
    return = Table.ExpandRecordColumn(convertParamToRecord, "param", allRecordFieldNames, toNames)
in
    return
Страницы: 1
Наверх