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

Re: Обработка книг формата fb2



Alexey Pechnikov wrote:
> В процессе обработки выяснилось, что библиотеки содержат жуткую смесь
> валидных и невалидных документов. Пытаюсь выправить чем-то вроде
>  
> exec cat "$2" | enconv | sed 's/<?xml version="1.0" encoding=.*/<?xml
> version="1.0" encoding="utf-8"?>/' | tidy -q -xml -utf8 2>/dev/null |
> xsltproc "$STYLE" -
> 
> но и так не все документы успешно преобразуются, выдавая ошибки xml. Может
> ли кто предложить лучший способ? Замечу, что исходный контент мы не
> модифицируем, необходимо все преобразования выполнять на лету и побыстрее
> (выше приведенная штука ощутимо тормозит). С кодировками вроде проблема
> решена с помощью enconv.

Если дело только в амперсанде, поможет
sed -e 's/&/\&amp;/g;s/&amp;amp;/\&amp;/g'

Если хуже — написать собственный парсер, аналог tidy.

enconv не справится с документами, где текст в latin1, кодировка указана
windows-1251, и имя составителя кириллицей. Одна из моих утилит лечит
подобные ошибки.


Reply to: