Mysqldump -x опция для экранирования символов XML - PullRequest
4 голосов
/ 22 июля 2011

Я экспортирую базу данных MySQL как XML, используя mysqldump -x.Многие из моих полей содержат апострофы и другие символы, которые путают таблицу стилей XSLT mysqldump-x-restore .

Недостаточно просто запустить файл и экранировать символы, из-за которых у XML возникают проблемыс, поскольку это заменит все допустимые скобки XML и кавычки.В mysqldump есть возможность сделать экранирование XML для данных столбца?

1 Ответ

0 голосов
/ 11 октября 2011

Если только несколько специальных символов приводят к проблемам, вы можете достичь того же результата, что и mysqldump -x с опцией execute (-e) в сочетании с функциями REPLACE в обычном клиенте mysql.

Пример, который экранирует символ амперсанда:

mysql --xml -uusername -p -Ddatabasename -e"SELECT REPLACE(field1, '&', ' ') AS field1 FROM ymse.dbh_inst" > /path/file.xml

Если вам нужно экранировать несколько специальных символов, этот метод приведет к уродливым вложенным операторам REPLACE, поскольку MySQL не поддерживает замену regexp.

...