Клубове Дир.бг
powered by diri.bg
търси в Клубове diri.bg Разширено търсене

Вход
Име
Парола

Клубове
Dir.bg
Взаимопомощ
Горещи теми
Компютри и Интернет
Контакти
Култура и изкуство
Мнения
Наука
Политика, Свят
Спорт
Техника
Градове
Религия и мистика
Фен клубове
Хоби, Развлечения
Общества
Я, архивите са живи
Клубове Дирене Регистрация Кой е тук Въпроси Списък Купувам / Продавам 18:37 18.04.24 
Клубове/ Компютри и Интернет / XML Пълен преглед*
Информация за клуба
Тема Нека да пробвам първо аз :)
Автор Цвeтaн ЦвeтkoвАдминистратор (Администратор)
Публикувано24.01.02 18:19  



Предлагам ви 2 функцийки на PHP за парсване на XML. Трябваха ми точно 15 мин. за да се ориентирам и да си парсна първия файл ;))

пръво едно файлче с функцийките

xmlize.inc
<?php

function xml_depth($vals, &$i) {
$children = array();
if ($vals[$i]['value']) array_push($children, $vals[$i]['value']);

while (++$i < count($vals)) {

switch ($vals[$i]['type']) {

case 'cdata':
array_push($children, $vals[$i]['value']);
break;

case 'complete':
$tagname = $vals[$i]['tag'];
$size = sizeof($children["$tagname"]);

$children[$tagname][$size]["#"] = $vals[$i]['value'];
if($vals[$i]["attributes"]) {
$children[$tagname][$size]["@"]
= $vals[$i]["attributes"];
}
break;

case 'open':
$tagname = $vals[$i]['tag'];
$size = sizeof($children["$tagname"]);
if($vals[$i]["attributes"]) {
$children["$tagname"][$size]["@"]
= $vals[$i]["attributes"];
$children["$tagname"][$size]["#"] = xml_depth($vals, $i);
} else {
$children["$tagname"][$size]["#"] = xml_depth($vals, $i);
}
break;

case 'close':
return $children;
break;
}

}

return $children;

}

function xmlize($data) {

$vals = $index = $array = array();
$parser = xml_parser_create();
xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, 0);
xml_parser_set_option($parser, XML_OPTION_SKIP_WHITE, 1);
xml_parse_into_struct($parser, $data, $vals, $index);
xml_parser_free($parser);

$i = 0;

$tagname = $vals[$i]['tag'];
$array[$tagname]["@"] = $vals[$i]["attributes"];
$array[$tagname]["#"] = xml_depth($vals, $i);

return $array;
}

?>


А ето и един пример как се използват

<?php

include "xmlize.inc";

$file = "./calendar.xml";
$data = implode("", file($file));
$array = xmlize($data);

$calendar = $array["calendar"]["#"]["item"];

for($i = 0; $i < sizeof($calendar); $i++) {

$item = $calendar[$i]["#"];
$date = $item["date"][0]["#"];
$text = $item["text"][0]["#"];
print "$date - $text
\n";

}


?>

а това е

calendar.xml

<calendar>
<item>
<date>10.10.2001</date>
<text>bla & bla</text>
</item>
<item>
<date>10.10.2001</date>
<text>bla bla</text>
</item>
<item>
<date>10.10.2001</date>
<text>bla bla</text>
</item>

</calendar>


На добър час :)

...


Цялата тема
ТемаАвторПубликувано
* Нека да пробвам първо аз :) Цвeтaн ЦвeтkoвАдминистратор   24.01.02 18:19
. * Re: Нека да пробвам първо аз :) aquarin   25.01.02 17:21
. * Re: Нека да пробвам първо аз :) 9-rлaвaтa лaмя   30.01.02 00:52
. * Re: Нека да пробвам първо аз :) Hotmama   30.01.02 19:09
. * Re: Нека да пробвам първо аз :) 9-rлaвaтa лaмя   01.02.02 15:16
. * Re: Нека да пробвам първо аз :) t.s.   01.02.02 17:45
. * Re: Нека да пробвам първо аз :) Hotmama   04.02.02 15:52
. * Re: Нека да пробвам първо аз :) Zyl_Oiliuff   04.02.02 16:18
. * Re: Нека да пробвам първо аз :) Hotmama   04.02.02 16:35
. * Re: Нека да пробвам първо аз :) XMLcho   04.02.02 17:26
. * Re: Нека да пробвам първо аз :) Zyl_Oiliuff   05.02.02 12:26
Клуб :  


Clubs.dir.bg е форум за дискусии. Dir.bg не носи отговорност за съдържанието и достоверността на публикуваните в дискусиите материали.

Никаква част от съдържанието на тази страница не може да бъде репродуцирана, записвана или предавана под каквато и да е форма или по какъвто и да е повод без писменото съгласие на Dir.bg
За Забележки, коментари и предложения ползвайте формата за Обратна връзка | Мобилна версия | Потребителско споразумение
© 2006-2024 Dir.bg Всички права запазени.