Помогни ни да направим Uroci.net по - богат! Добави урок

Парсване на XML през PHP

PHP » PHP
Versus   трудност:    видян: 11996



parseXML()
Няма да обърна много внимание на първите редове от този метод, тъй кат това са функции на PHPи можете да ги проверите в ръководствтото на PHP, само да отбележа, че не можете да пропуснете никоя от тях, тъй като те са основните за същинското четене на XML файла.

if ($this->_mode != 'all')
{
if (@!($fp = fopen($this->_url, "rb")))
{
die("Could not open XML input");
}
while ($data = fread($fp, 4096))
{
if (@!xml_parse($xml_parser, $data, feof($fp)))
{
die(sprintf("XML error: %s at line %d", xml_error_string(xml_get_error_code($xml_parser)),
xml_get_current_line_number($xml_parser)));
}
}
}

Тази част от метода се активира при положение, че имаме само един файл за четене. С fopen($this->_url, "rb") отваряме файла за бинарно четене ( бинарното четене е въпрос на избор, и обикновенни също върши работа) след което започваме да го четем на порции $data = fread($fp, 4096) и да подаваме тези "порции" на xml_parse(). Тъй като ползваме тази функция за четенето на файла на "парче" трябва да бъде използвана с третия и параметър, който указва края на файла, в случая се възползваме от feof($fp) което ще върне true при положение че това е края.

elseif($this->_mode == 'all')
{
.........
}


Този случай ще се активира при положение, че подаваме на класа стринг с цялото съдържание на всички файлове. Тя е идентична на горната с единствената разлика, че не зареждаме съдържанието на файл.

С викането на xml_parse() се виат още три метода, които обуславят държанието на РНР в различните положения:


startElementHandler() cdataHandler() endElementHandler() тези методи се активират съответно в началото -> средата -> края на елемент. Като под елемент разбираме <началото>средата </края>. Тези методи могат да бъдат написани според нуждите на скрипта, който пишете в момента, основната идея е да създадете подходящ масив, който да можете да обработите по-късно или направо да обработите данните получавани от файла ( което не ви го препоръчвам).

В нашия случай пресъздаваме съдържанието на XML файла в "масивен" формат, като всеки обект ( съвкупност от елементи) зареждаме в отделен подмасив и получаваме един многомерен масив с предвидима структура.

Мисля, че това е достатъчно за да започнете експиремнтите с по горния клас или да напишете свой собствен.

Продължаваме със съдържанието на файла inclu_fns.php :
Няма да показвам цялото съдържание на файла, за да не заемаме ненужно пространство.


Страници: «1 2 3 »

Коментари (1)

ganbox на 13.08 2009 в 17:34ч.
Една статия за лесно парсване на RSS новини има в блога на ganbox.com статия PHP парсване на XML новини за твоя сайт http://ganbox.com/blog/php-парсване-на-xml-новини-за-твоя-сайт/

Регистрирайте се, за да добавите коментар


Калдейта ЕООД - © 2003-2010. Всички права запазени.
Препоръчваме: Национален Бизнес | Bomba.bg | IT Новини | Диплома.бг | TRAVEL туризъм | Реферати | AmAm.bg | Иде.ли | Курсови работи | Фото Форум | Spodeli.net | Фото-Култ | Atol.bg | Elmaz.com | MobileBulgaria.com | Казанлък.Com