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, и имя составителя кириллицей. Одна из моих утилит лечит подобные ошибки. -- To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org