парсинг, так его разэдак @ DeForum.ru
DeДверь  
Логин:  
Пароль:  
  Автологин  
   
Разместить рекламу
Письмо админу
Правила | FAQ | *Поиск | Наша команда | Регистрация | Вход
 
 
 Страница 1 из 1 [ Сообщений: 5 ] 
*   Список форумов / Начинка и техника / Программирование для WWW » ответить » создать топик « | »
Автор Сообщение
choy Муж.
новый человек
0
Сообщения: 8
Зарегистрирован: 20.07.04
Заголовок сообщения: парсинг, так его разэдак
Сообщение Добавлено: 9 Август 2005, 09:20:24 
здравствуйте!

проблема такая:

есть xml-ка с новостями. вот такая:

Код:
<?xml version="1.0" encoding="windows-1251"?>
<dataroot>
<news>
<date>29.08.2005</date>
<rubrica>сайт</rubrica>
<content><![CDATA[Текст новости тут текст новости.]]></content>
</news>
</dataroot>


и php-скрипт, который её парсит и выводит. вот такой:

Код:
include_once ('xml_functions.php');
$xmlfilename = 'news.xml';
$news = array();       
$currentNews = null;   
$index = null;         
$rubricator = 'news';
$parser = xml_parser_create();
xml_set_element_handler($parser,'saxStartElement','saxEndElement');
xml_set_character_data_handler($parser,'saxCharacterData');
xml_parser_set_option($parser,XML_OPTION_CASE_FOLDING,false);
$xml = join('',file($xmlfilename));
if (!xml_parse($parser,$xml,true))
    die(sprintf('Ошибка XML: %s в строке %d',
        xml_error_string(xml_get_error_code($parser)),
        xml_get_current_line_number($parser)));
xml_parser_free($parser);

foreach ($news as $n)
   {
    echo ($n['rubrica']."\n");
                 echo ('<b>['.substr($n['date'],0,2).'.'.substr($n['date'],3,2).'.'.substr($n['date'],6,4).']</b><br>'."\n");
                 echo ('<p>'.$n['content'].'</p><br>'."\n");
   }



так вот. если умозрительно добавить ещё пару сотен новостей в xml-ку, то возникает коллапс: в некоторых случаях по неуловимой мною логике скрипт обрезает содержимое тэга content. причём, обрезает с начала, оставляя конец.

количество оставляемых символов каждый раз разное.

как это? что это вообще? почему такое может быть? (голову сломал)

заранее спасибо!
choy Муж.
новый человек
0
Сообщения: 8
Зарегистрирован: 20.07.04
Сообщение Добавлено: 15 Март 2006, 14:59:55 
опять вляпался в эту же проблему
неужели никто не знает ответа?
nobody Муж.
новый человек
0
Сообщения: 29
Зарегистрирован: 29.08.05
Откуда: moscow
Сообщение Добавлено: 15 Март 2006, 23:14:59 
Попробуй использовать pear, скорей всего это бага самого php..
Original Demon Муж.
постоянный участник
9
Сообщения: 2719
Зарегистрирован: 18.04.02
Откуда: Hell of a Place
Сообщение Добавлено: 16 Март 2006, 14:48:51 
для начала вместо xml parser лучше использовать dom xml

_________________
Original Demon - distributed world wide since 546 BC
Long Муж.
SubAdmin
Теоретик
17
Сообщения: 4362
Зарегистрирован: 25.04.01
Откуда: Москва
Сообщение Добавлено: 16 Март 2006, 16:47:55 
на сколько я помню - такое возникает тогда, когда <content></content> содержит переводы строк. обходится - небольшой модификацией алгоритма работы - вводится буфер.

_________________
Мудрость не всегда приходит с возрастом. Бывает, что возраст приходит один.
*   Список форумов / Начинка и техника / Программирование для WWW « | » » ответить » создать топик
 Страница 1 из 1 [ Сообщений: 5 ] 
Показать сообщения за:   Поле сортировки  
Найти:
Перейти:  
Уровень доступа: Вы не можете начинать темы. Вы не можете отвечать на сообщения. Вы не можете редактировать свои сообщения. Вы не можете удалять свои сообщения. Вы не можете добавлять вложения.
cron


ООО ДеФорум
При использовании материалов сайта ссылка на DeForum.ru — обязательна.
Проект Павла Батурина ©2001-2077; // Powered by phpBB © 2013 phpBB Group
Rambler's Top100