СКРИПТ: Разбор объявлений из XML файлов

Подача, публикация, рассылка объявлений на доски. Удаление и редактирование старых объявлений. Нюансы работы с различными досками объявлений.
Ответить
Аватара пользователя
XwebDeveloper
Сообщения: 46
Зарегистрирован: 13 ноя 2017, 12:53

СКРИПТ: Разбор объявлений из XML файлов

Сообщение XwebDeveloper » 25 фев 2020, 14:49

Содержимое xml файла:
<?xml version="1.0" encoding="UTF-8"?>
<Ads formatVersion="3" target="Avito.ru">
	<Ad>
		<Id>auto_001</Id>
		<ListingFee>Package</ListingFee>
		<AdStatus>Free</AdStatus>
		<Address>Москва, улица Народного ополчения, 41</Address>
		<Description>Замечательный экземпляр легендарного автомобиля Volkswagen Golf</Description>
		<Category>Автомобили</Category>
		<CarType>С пробегом</CarType>
		<Accident>Не битый</Accident>
		<Price>895000</Price>
		<Make>Volkswagen</Make>
		<Model>Golf</Model>
		<Year>2011</Year>
		<VIN>1FTWR72P1LVA41777</VIN>
		<BodyType>Универсал</BodyType>
		<Doors>5</Doors>
		<Color>Золотой</Color>
		<WheelType>Левый</WheelType>
		<GenerationId>334847</GenerationId>
		<ModificationId>339991</ModificationId>
		<ComplectationId />
	</Ad>
	<Ad>
		<Id>auto_002</Id>
		<ListingFee>Package</ListingFee>
		<AdStatus>Free</AdStatus>
		<Address>Москва, улица Народного ополчения, 41</Address>
		<Description>Экземпляр легендарного автомобиля Volkswagen Golf</Description>
		<Category>Автомобили</Category>
		<CarType>С пробегом</CarType>
		<Accident>Не битый</Accident>
		<Price>950000</Price>
		<Make>Volkswagen</Make>
		<Model>Golf</Model>
		<Year>2015</Year>
		<VIN>1F2PRTE1LVA41777</VIN>
		<BodyType>Универсал</BodyType>
		<Doors>5</Doors>
		<Color>Синий</Color>
		<WheelType>Левый</WheelType>
		<GenerationId>334845</GenerationId>
		<ModificationId>339992</ModificationId>
		<ComplectationId />
	</Ad>
</Ads>
Код разбора с использованием класса SimpleXMLElement:
// папка с объявлениями
$xml_file="data//ads.xml";

// считываем страницу с xml данными
$page_xml = file_get_contents($xml_file); 

// создаем xml документ
$ads = new SimpleXMLElement($page_xml);

// считываем данные
foreach ($ads->Ad as $data)
{
	// print_r($data);
	echo "ID: ".$data->Id."<br>";
	echo "ListingFee: ".$data->ListingFee."<br>";
	echo "AdStatus: ".$data->AdStatus."<br>";
	echo "Address: ".$data->Address."<br>";
	echo "Description: ".$data->Description."<br>";
	echo "Category: ".$data->Category."<br>";
	echo "CarType: ".$data->CarType."<br>";
	echo "Accident: ".$data->Accident."<br>";
	echo "Price: ".$data->Price."<br>";
	echo "Make: ".$data->Make."<br>";
	echo "Model: ".$data->Model."<br>";
	echo "Year: ".$data->Year."<br>";
	echo "VIN: ".$data->VIN."<br>";
	echo "BodyType: ".$data->BodyType."<br>";
	echo "Doors: ".$data->Doors."<br>";
	echo "Color: ".$data->Color."<br>";
	echo "WheelType: ".$data->WheelType."<br>";
	echo "GenerationId: ".$data->GenerationId."<br>";
	echo "ModificationId: ".$data->ModificationId."<br>";
}

Код разбора с использованием функции simplexml_load_file:
// папка с объявлениями
$xml_file="data//ads.xml";

// получение xml-контента в виде объекта
$ads = simplexml_load_file($xml_file);

// считываем данные
foreach ($ads->Ad as $data)
{
	// print_r($data);
	echo "ID: ".$data->Id."<br>";
	echo "ListingFee: ".$data->ListingFee."<br>";
	echo "AdStatus: ".$data->AdStatus."<br>";
	echo "Address: ".$data->Address."<br>";
	echo "Description: ".$data->Description."<br>";
	echo "Category: ".$data->Category."<br>";
	echo "CarType: ".$data->CarType."<br>";
	echo "Accident: ".$data->Accident."<br>";
	echo "Price: ".$data->Price."<br>";
	echo "Make: ".$data->Make."<br>";
	echo "Model: ".$data->Model."<br>";
	echo "Year: ".$data->Year."<br>";
	echo "VIN: ".$data->VIN."<br>";
	echo "BodyType: ".$data->BodyType."<br>";
	echo "Doors: ".$data->Doors."<br>";
	echo "Color: ".$data->Color."<br>";
	echo "WheelType: ".$data->WheelType."<br>";
	echo "GenerationId: ".$data->GenerationId."<br>";
	echo "ModificationId: ".$data->ModificationId."<br>";
}

Результат работы обоих примеров:
ID: auto_001
ListingFee: Package
AdStatus: Free
Address: Москва, улица Народного ополчения, 41
Description: Замечательный экземпляр легендарного автомобиля Volkswagen Golf
Category: Автомобили
CarType: С пробегом
Accident: Не битый
Price: 895000
Make: Volkswagen
Model: Golf
Year: 2011
VIN: 1FTWR72P1LVA41777
BodyType: Универсал
Doors: 5
Color: Золотой
WheelType: Левый
GenerationId: 334847
ModificationId: 339991
ID: auto_002
ListingFee: Package
AdStatus: Free
Address: Москва, улица Народного ополчения, 41
Description: Экземпляр легендарного автомобиля Volkswagen Golf
Category: Автомобили
CarType: С пробегом
Accident: Не битый
Price: 950000
Make: Volkswagen
Model: Golf
Year: 2015
VIN: 1F2PRTE1LVA41777
BodyType: Универсал
Doors: 5
Color: Синий
WheelType: Левый
GenerationId: 334845
ModificationId: 339992
Запрос на создание скриптов viewforum.php?f=61

Ответить