Головні новини
Ви тут: Головна / php / Пишемо свій перший парсер

Пишемо свій перший парсер



Привіт всім, недавно я створив цей блог і на ньому ще зовсім не має читачів. Тому цей пост буде короткий і інформаційний. В ньому я хочу розказати вам як я перший раз писав парсер великих xml файлів зі різними параметрами.

Не буду тянути, починаємо створювати парсер.

Для початку розглянемо наш xml файл

<?xml version="1.0" encoding="windows-1251"?>
<operators>
	<operator id="175" name="AQUAFON (Абхазия)" label="aquafon" tld="AH" country="Абхазия" publish="1" mnc="">
		<range ip1="1052116992" ip2="1052119039" mode="0" global="0"/>
		<range ip1="3284075520" ip2="3284076031" mode="0" global="0"/>
		<range ip1="776339456" ip2="776404991" mode="0" global="0"/>
	</operator>
</operators>

Тепер нам потрібно скачати його на сервер

//Посилання на xml файл
$data = "http://*****.xml";
//Шлях куди ми будемо зберігати файл
$file = $_SERVER['DOCUMENT_ROOT'].'/file.xml';
//Провіряєм чи існує файл
if (!file_exists($file)){copy($data, $file);}

Починаємо парсити загружений файл

$file = $_SERVER['DOCUMENT_ROOT'].'/file.xml';
$dom = new domDocument("1.0", "utf-8"); // Створюємо XML-документ версії 1.0 з кодуванням utf-8
$dom->load($ipfile); // Завантажуємо XML-документ з файлу в об'єкт DOM
$root = $dom->documentElement; // Отримуємо кореневий елемент
$childs = $root->childNodes; // Отримуємо дочірні елементи у кореневого елемента
/* Перебираємо отримані дані */
for ($i = 0; $i < $childs->length; $i++) {
	$operator = $childs->item($i); // Отримуємо наступний елемент з NodeList
	$lp = $operator->childNodes; // Отримуємо дочірні елементи у вузла "operator"
	$country = $operator->getAttribute("country"); // Отримуємо значення атрибута "country" у вузла "operator"
	/* Перебираємо отримані дані */
	for ($i = 0; $i < $lp->length; $i++) {
		$ip1 = $lp->item($i)->getAttribute("ip1"); // Отримуємо значення атрибута "ip1" у вузла "range"
		$ip2 = $lp->item($i)->getAttribute("ip2"); // Отримуємо значення атрибута "ip2" у вузла "range"
	}
}

Після цього можна добавляти отримані дані в базу абож виводити на екран. Ввесь код прокоментований, думаю не буду більше розказувати, в ньому буде не важко розібратись 🙂



Автор Володимир Гривінський



Залишити коментар

Ваша електронна адреса не буде опублікована.

Вгору
UA TOP Bloggers