Xpath
https://habr.com/ru/articles/753332/
XPath (XML Path Language) - это язык запросов, используемый для навигации и поиска информации в XML-документах. Он позволяет точно указать путь к элементам, атрибутам и текстовым данным, которые нужно найти в структуре XML файлов и получить данные при необходимости.
Ниже приведем несколько примеров указания путей к элементам, которые вам могут понадобиться
1. Указать путь к товарам
<!--
shop/offers/offer - путь до товаров -> массив объектов offer
-->
<yml_catalog>
<shop>
<offers>
<offer id="123">
<name>ПЛАТЬЕ Белое</name>
<price>2080</price>
<quantity>8</quantity>
<vendorCode>А123</vendorCode>
<picture>https://site.ru/upload/А123.jpg</picture>
</offer>
<offer id="456">
<name>ПЛАТЬЕ Черное</name>
<price>2080</price>
<quantity>10</quantity>
<vendorCode>А456</vendorCode>
<picture>https://site.ru/upload/А456.jpg</picture>
</offer>
</offers>
</shop>
<yml_catalog>
<!--
offers/ДетальнаяЗапись - путь до товаров -> массив объектов ДетальнаяЗапись
-->
<shop>
<offers>
<ДетальнаяЗапись>
<ID>123</ID>
<Наименование>ПЛАТЬЕ Белое</Наименование>
<Цена>2080</Цена>
<Доступноеколичество>8</Доступноеколичество>
<Артикул>А123</Артикул>
<Изображение>https://site.ru/upload/А123.jpg</Изображение>
</ДетальнаяЗапись>
<ДетальнаяЗапись>
<ID>456</ID>
<Наименование>ПЛАТЬЕ Черное</Наименование>
<Цена>2080</Цена>
<Доступноеколичество>10</Доступноеколичество>
<Артикул>А456</Артикул>
<Изображение>https://site.ru/upload/А456.jpg</Изображение>
<offers>
</shop>
2. Выборка элементов
<!--
name - выберет занчение элемент с название тэга 'name' -> ПЛАТЬЕ Белое
param[@name='Артикул'] - выберет атрибут с названием "name" равный занчению "Артикул" -> А123
variant/@size - выберет занчение атрибута 'size' -> 56
outlets/outlet/@instock - выберет занчение атрибута 'instock' -> 2
-->
<offer id="123">
<name>ПЛАТЬЕ Белое</name>
<param name="Артикул">А123</param>
<variant size="56"/>
<outlets>
<outlet instock="2"/>
</outlets>
</offer>
<!--
*[starts-with(name(.),'Изображение_')] - выбрать все элементы, у которых название тэга начинается на "Изображение_" -> массив значений "Изображение_"
-->
<Товар>
<Код>123</Код>
<Наименование>ПЛАТЬЕ Белое</Наименование>
<Изображение_1>https://site.ru/upload/А123_1.jpg</Изображение_1>
<Изображение_2>https://site.ru/upload/А123_2.jpg</Изображение_2>
<Изображение_3>https://site.ru/upload/А123_3.jpg</Изображение_3>
</Товар >
<!--
characteristic[name='Вес, кг']/value - выберет занчение элемента 'value', в котором есть элемент 'name' равный 'Вес, кг' -> 0,374
-->
<product>
<sku>123</sku>
<title>ПЛАТЬЕ Белое</title>
<characteristic>
<name>Вес, кг</name>
<value>0,374</value>
</characteristic>
<characteristic>
<name>Длина изделия, мм</name>
<value>250</value>
</characteristic>
</product>
<!--
picture[1] - выберет только первое значение с тэгом 'picture' -> https://site.ru/upload/А123_1.jpg
-->
<offer id="123">
<name>ПЛАТЬЕ Белое</name>
<picture>https://site.ru/upload/А123_1.jpg</picture>
<picture>https://site.ru/upload/А123_2.jpg</picture>
<picture>https://site.ru/upload/А123_3.jpg</picture>>
</offer>
Last updated