如何合并具有相同名称参数的值,以及如何在每棵树中包括所有其他值?

时间:2019-06-26 00:48:50

标签: xml

我正在开发网站,并且提供者提供的xml文件带有树,需要以某种方式进行更改...

我没有用于编辑xml文件的特殊软件(只是具有Notepad ++),而且我不是xml专家...所以您可以建议我如何更改树(写在下面)以及什么类型的软件我应该为此安装吗?

<!-- Source: -->

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE yml_catalog SYSTEM "shops.dtd">
<yml_catalog>
    <shop>
        <offers>
            <offer id="43" type="vendor.model" available="true">
                <price>6550</price>
                <min_batch>1</min_batch><!-- Мин. партия-->
                <availability_status>В наличии</availability_status>
                <currencyId>RUR</currencyId>
                <categoryId>13</categoryId>
                <vendor>Chairman</vendor>
                <model>CH 416</model>
                <manufacturer_warranty>true</manufacturer_warranty>
                <weight>20.3</weight>
                <param name="Высота" unit="мм">1100 / 1190</param>
                <param name="Ширина" unit="мм">650</param>
                <param name="Глубина" unit="мм">500</param>
                <param name="Объем упаковки" unit="м3">0.206</param>
                <param name="Кол-во упаковок">1</param>
                <param name="Форма поставки">В разобранном виде</param>
                <param name="Срок гарантии">12 месяцев</param>
                <param name="Тип">До 80 кг</param>
                <param name="Тип">До 100 кг</param>
                <param name="Тип">До 120 кг</param>
                <param name="Тип">Регулируемые по высоте</param>
                <param name="Назначение">Для дома</param>
                <param name="Материал">Кожа</param>
                <param name="Материал">Искусственная кожа</param>
                <param name="Особенности">С подлокотниками</param>
                <param name="Особенности">С мягким сиденьем</param>
                <param name="Особенности">Пластиковая крестовина</param>
                <param name="Особенности">С откидной спинкой</param>
            </offer>
            <offer id="575" type="vendor.model" available="true">
                <price>1650</price>
                <min_batch>1</min_batch><!-- Мин. партия-->
                <availability_status>В наличии</availability_status>
                <currencyId>RUR</currencyId>
                <categoryId>1804</categoryId>
                <vendor>Боровичи</vendor>
                <model>Стол обеденный прямая ножка</model>
                <manufacturer_warranty>true</manufacturer_warranty>
                <weight>20.2</weight>
                <param name="Высота" unit="мм">730</param>
                <param name="Ширина" unit="мм">900</param>
                <param name="Глубина" unit="мм">600</param>
                <param name="Объем упаковки" unit="м3">0.072</param>
                <param name="Кол-во упаковок">1</param>
                <param name="Форма поставки">В разобранном виде</param>
                <param name="Срок гарантии">18 месяцев</param>
                <param name="Тип">Нераскладные</param>
                <param name="Материал">Дерево</param>
                <param name="Материал">ЛДСП</param>
                <param name="Материал">Натуральное дерево</param>
                <param name="Порода дерева">Береза</param>
                <param name="Форма">Прямоугольные</param>
                <param name="Размер">Маленькие</param>
                <param name="Стиль">Современный</param>
                <param name="Стиль">Модерн</param>
            </offer>
    </offers>
    </shop>
</yml_catalog>


<!-- What I need to get: -->

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE yml_catalog SYSTEM "shops.dtd">
<yml_catalog>
    <shop>
        <offers>
            <offer id="43" type="vendor.model" available="true">
                <price>6550</price>
                <min_batch>1</min_batch><!-- Мин. партия-->
                <availability_status>В наличии</availability_status>
                <currencyId>RUR</currencyId>
                <categoryId>13</categoryId>
                <vendor>Chairman</vendor>
                <model>CH 416</model>
                <manufacturer_warranty>true</manufacturer_warranty>
                <weight>20.3</weight>
                <param name="Высота" unit="мм">1100 / 1190</param>
                <param name="Ширина" unit="мм">650</param>
                <param name="Глубина" unit="мм">500</param>
                <param name="Объем упаковки" unit="м3">0.206</param>
                <param name="Кол-во упаковок">1</param>
                <param name="Форма поставки">В разобранном виде</param>
                <param name="Срок гарантии">12 месяцев</param>
                <param name="Тип">До 80 кг|До 100 кг|До 120 кг|Регулируемые по высоте</param>
                <param name="Назначение">Для дома</param>
                <param name="Материал">Кожа|Искусственная кожа</param>
                <param name="Особенности">С подлокотниками|С мягким сиденьем|Пластиковая крестовина|С откидной спинкой</param>
                <param name="Порода дерева"></param>
                <param name="Форма"></param>
                <param name="Размер"></param>
                <param name="Стиль"></param>
            </offer>
            <offer id="575" type="vendor.model" available="true">
                <price>1650</price>
                <min_batch>1</min_batch><!-- Мин. партия-->
                <availability_status>В наличии</availability_status>
                <currencyId>RUR</currencyId>
                <categoryId>1804</categoryId>
                <vendor>Боровичи</vendor>
                <model>Стол обеденный прямая ножка</model>
                <manufacturer_warranty>true</manufacturer_warranty>
                <weight>20.2</weight>
                <param name="Высота" unit="мм">730</param>
                <param name="Ширина" unit="мм">900</param>
                <param name="Глубина" unit="мм">600</param>
                <param name="Объем упаковки" unit="м3">0.072</param>
                <param name="Кол-во упаковок">1</param>
                <param name="Форма поставки">В разобранном виде</param>
                <param name="Срок гарантии">18 месяцев</param>
                <param name="Тип">Нераскладные</param>
                <param name="Материал">Дерево|ЛДСП|Натуральное дерево</param>
                <param name="Назначение"></param>
                <param name="Порода дерева">Береза</param>
                <param name="Форма">Прямоугольные</param>
                <param name="Размер">Маленькие</param>
                <param name="Стиль">Современный|Модерн</param>
                <param name="Особенности"></param>
            </offer>
    </offers>
    </shop>
</yml_catalog>

因此,在代码中,每个报价都是在线商店中的产品,每个参数都是此产品过滤器的属性。每个商品(产品)中都存在需要所有此参数(属性)的导入,即使此参数为空(此产品不存在)。并且参数的每个值都应除以“ |”。 西里尔文符号中的参数类型名称,但是我可以在Notepad ++(批量编辑)中以拉丁文符号(如果需要)更改所有这些名称。

非常感谢您的帮助! :)

0 个答案:

没有答案