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/&/\&/g;s/&amp;/\&/g'
Если хуже — написать собственный парсер, аналог tidy.
enconv не справится с документами, где текст в latin1, кодировка указана
windows-1251, и имя составителя кириллицей. Одна из моих утилит лечит
подобные ошибки.
Reply to: