[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: