Mysqldump -x 转义 XML 字符的选项

标签 mysql xml escaping mysqldump

我正在使用 mysqldump -x 将 MySQL 数据库导出为 XML。我的许多字段包含撇号和其他混淆 mysqldump-x-restore 的字符的 XSLT 样式表。

仅仅遍历文件并转义 XML 有问题的字符是不够的,因为这会替换所有合法的 XML 括号和引号。 mysqldump 上是否有一个选项可以对列数据进行 XML 转义?

最佳答案

如果只有少数特殊字符导致麻烦,您可以使用执行 (-e) 选项结合常规 mysql 客户端中的 REPLACE 函数获得与 mysqldump -x 相同的结果。

转义与号字符的示例:

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

如果您必须转义多个特殊字符,此方法将导致丑陋的嵌套 REPLACE 语句,因为 MySQL 不支持正则表达式替换。

关于Mysqldump -x 转义 XML 字符的选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6782952/

相关文章:

iphone - 如何使用 NSLog 输出文字序列

MySql自连接意外结果内连接

mysql - 在 SQL INNER JOIN 中使用额外的 WHERE

c# - 在 C# 中将大型 XML 文件切割成较小的部分

php - 不要转义存储为字符串的 html(执行或处理 html 字符串)

java - DOMDocument getNodeValue() 返回 null(包含输出转义字符串)

JavaScript HttpRequest 总是返回相同的结果

php - 原则 2 映射一对多/多对一

java - XML 验证 - 已知和未知属性可选吗?

xml - 根据 Go 中的 XML 模式验证 XML 文档