[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Обработка xml
Hetman
Здравствуйте всем!
Изучаю парсер xml - файла.
Столкнулся со странной проблемой. Ничего не могу понять.
Речь идет о SAX (Simple API for xml).
При назначении события onText, данные, которые приходят в переменную $data не записываются в глобальный массив!
Причем, если их вывести перед этим - все выводится.
Если записать в массив что-то другое, просто текст, переменную - все записывается, а вот данные из переменной $data не пишутся. Подозреваю, что дело в кодировке. UTF-8 текст просто выводится, а в ячейку массива писаться не хочет. Может такое быть? Если да, то как с этим бороться?
Вот текст кода
$n = 0;
$k = '';
$books = array();
function onStart($sax, $tag, $attributes){
global $n, $k;
if ($tag == 'BOOK') $n++;
else $k = $tag;
}
function onEnd($sax, $tag){
}

function onText($sax, $data){
global $n, $k;
global $books;
//echo $data; //ВЫВОДИТСЯ!!!!
$t = $data;
echo $t; //ВЫВОДИТСЯ!!!
$books[$n][$k] = $data; // - НЕ ПИШЕТСЯ!! Что угодно другое - пишется!!!
//echo $data;

}
$sax = xml_parser_create();
xml_set_element_handler($sax, "onStart", "onEnd");
xml_set_character_data_handler($sax, "onText");
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.