Re: Фильтры документов для системы полнотекстового поиска - формат odt
Alexey Pechnikov -> debian-russian@lists.debian.org @ Mon, 2 Nov 2009 22:00:16 +0300:
AP> А вот еще по одному фильтру вопрос возник. Самый что ни на есть
AP> распрекрасный odt нужно индексировать. "С помощью лома и
AP> какой-то матери" нашел ODF Tools, которые дают неплохой html.
AP> Опять же, плодя временные файлы. Чтение исходников привело
AP> к мысли, что все гораздо проще делается, например, так
AP> cat <(echo "<?xml version='1.0' encoding='UTF-8'?>")\
AP> <(echo "<office:document xmlns:office='urn:oasis:names:tc:opendocument:xmlns:office:1.0'>")\
AP> <(unzip -p 101.odt meta.xml |grep -v "<?xml version="|less) \
AP> <(unzip -p 101.odt content.xml |grep -v "<?xml version="|less) \
AP> <(unzip -p 101.odt styles.xml |grep -v "<?xml version="|less) \
AP> <(echo "</office:document>")\
AP> |xsltproc odt2html.xsl -
AP> Оно работает, и без временных файлов.
А памяти оно сколько жрет?
AP> Но, как я понимаю, это "башизм" и с ним надо бороться. Вопрос -
AP> как? Не соображу, как бы это переписать да еще без вызова лишних
AP> утилит...
Тебе надо это непременно на sh? На sh без лишних утилит никак - он
специально заточен под использование лишних утилит...
Но для индексирования не нужно styles, и не нужен DOM-парсер, которым
является xsltproc. Достаточно SAX-парсера. А простенький HTML для
индексатора, если индексатору нужен именно HTML, я полагаю, можно из
meta.xml и content.xml и на регексах изваять...
--
/итд/почтопосылалка.нстрк (c)
Reply to: