我是刚开始使用数据存储的新开发人员(来自SSIS的一些经验)。我正在做的第一件事就是将XML数据流从MQ处理到数据库中。我连接到MQ,使用XML作业将标记映射到每个db列,然后将其插入到db中。但是,我遇到了传入的xml的问题。我处理的每个xml文件中的一个字段包含相同的字符序列,类似于“& $!0”。
当我运行我的工作时,我得到一个错误,说这是一个非法的xml字符,并且作业失败。
在数据存储中是否有办法在xml中替换此值,或者甚至只删除它?我应该在工作中使用一个特定的工具吗?
显然,最简单的解决方案是修复数据,但是在平均时间内,我希望能够进行一些测试,所以替代解决方案现在很棒。
任何建议都将不胜感激。我是一名新开发人员,所以如果这个问题有点无知/低级,我会道歉。
答案 0 :(得分:1)
使用像notepad ++这样的文本编辑器自己删除字符......
要自动执行,在Linux中使用sed将完成你的工作,windows中的sed也可以在windows上运行!
答案 1 :(得分:1)
这些字符只不过是Unicode。您需要在插入数据库表之前删除它们。
尝试以下代码:
s = s.replaceAll("\\p{&$!0}+", "");
注意:您需要查找所有Unicode并将其替换为"" (空白)。
您将获得更多信息here