| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: X технологии > глюки xml_parse |
| Автор: comcon1 13.5.2009, 00:59 | ||
Доброй ночи, винград. Столкнулся с довольно странной проблеммой. Есть файл 5-50 мегабайт, парсю его xml_parser-ом. Все как в мануалах:
Парсится дамп базы данных, то есть много одинаковых макротэгов "record" со схожей внутренней структурой. Парсинг идет блоками по 4096 символов. Все парсит хорошо, но я заметил, что некоторое содержимое тэгов (то есть не аттрибуты, а "<тэг>содержимое</тэг>") режется. Причем мало того что режется, функция конца тэга endElementHandler периодически срабатывает дважды на одну запись. Первый раз выдает половину содержимого, второй раз все. Изменяю число 4096 на 8000 - все нормально. Для моей задачи я могу ограничиться выставлением числа символов в максимальную длину двух записей БД, это не очень много, и парсер будет работать нормуль. Но все же: Первый вопрос: лечится ли это вообще? Второй вопрос: пользуются ли нормальные люди xml_parsers, или это пережитки динозавров? |
| Автор: Kallisto 3.9.2009, 16:00 |
| fgets ? |
| Автор: IZ@TOP 3.9.2009, 16:59 |
| comcon1, я настоятельно рекомендую SAX парсер http://php.net/xmlreader. Добавлено через 1 минуту и 2 секунды Kallisto, я уже предупреждал про минус? fgets не имеет никакого отношения к парсингу XML и данной теме. |