Как выгрузить строку данных из xml/yml

Голоса: +1
Можно ли выгрузить отдельные данные из xml-файла на сайт? Есть некий прейскурант в yml, хотел бы из него выцепить отдельные позиции цен, дабы каждый раз не перелопачиать данные вручную
Адрес сайта mastermozaik.ru
| Автор: | Категория: Интернет-магазин

Ответов: 1

Голоса: +1
 
Лучший ответ

Объясню на примере. Допустим есть xml файл:

<yml_catalog date="2010-04-01 17:00">
<shop>
<name>Magazin</name>
<company>Magazin</company>
<url>http://www.magazin.ru/</url>
<currencies>
<currency id="RUR" rate="1" plus="0"/>
</currencies>
<categories>
<category id="1">Оргтехника</category>
<category id="10" parentId="1">Принтеры</category>
<category id="100" parentId="10">Струйные принтеры</category>
<category id="101" parentId="10">Лазерные принтеры</category>
<category id="2">Фототехника</category>
<category id="11" parentId="2">Фотоаппараты</category>
<category id="12" parentId="2">Объективы</category>
<category id="3">Книги</category>
<category id="13" parentId="3">Детективы</category>
<category id="14" parentId="3">Художественная литература</category>
<category id="15" parentId="3">Учебная литература</category>
<category id="16" parentId="3">Детская литература</category>
<category id="4">Музыка и видеофильмы</category>
<category id="17" parentId="4">Музыка</category>
<category id="18" parentId="4">Видеофильмы</category>
<category id="5">Путешествия</category>
<category id="19" parentId="5">Туры</category>
<category id="20" parentId="5">Авиабилеты</category>
<category id="6">Билеты на мероприятия</category>
</categories>
<local_delivery_cost>300</local_delivery_cost>
<offers>
<offer id="12341" type="vendor.model" bid="13" cbid="20" available="true">
<url>http://magazin.ru/product_page.asp?pid=14344</url>
<price>15000</price>
<currencyId>RUR</currencyId>
<categoryId type="Own">101</categoryId>
<picture>http://magazin.ru/img/device14344.jpg</picture>
<delivery>true</delivery>
<local_delivery_cost>300</local_delivery_cost>
<typePrefix>Принтер</typePrefix>
<vendor>НP</vendor>
<vendorCode>Q7533A</vendorCode>
<model>Color LaserJet 3000</model>
<description>
A4, 64Mb, 600x600 dpi, USB 2.0, 29стр/мин ч/б / 15стр/мин цв, лотки на 100л и 250л, плотность до 175г/м, до 60000 стр/месяц
</description>
<manufacturer_warranty>true</manufacturer_warranty>
<country_of_origin>Япония</country_of_origin>
</offer>
........
и т.д.
........
</offers>
</shop>
</yml_catalog>

Загружаем его

$(document).ready(function () {
    $.ajax({
        type: "GET",
        url: "prise.xml",
        dataType: "xml",
        success: Parser // при успешной загрузке xml запускаем ф-ю
    });
});

Начинаем парсить наш xml. Например, мы хотим узнать цену конкретной модели принтера. В данном примере модель содержится в <vendorCode>

function Parser(xml) {
	
	var name, price;
    //ищем во всех <offer>, т.к. именно в нем содержится цена и модель
	$(xml).find('offer').each(function () { 
		
		// если в этом оффере есть конкретный <vendorCode>
		// (модель, которую мы ищем)
		if ( $(this).find('vendorCode').text() == 'Q7533A' ) {
            // заносим цену этого принтера из <price> в переменную
			price = $(this).find('price').text();
		};

        alert (price);
		
    });

}

Примерно так.

| Автор:
Выбор ответа лучшим | | Автор: Бадди Фазуллин
Срасибо огромное за подробный разбор.

Не могу отобразить искомые данные на странице
...