我有一个XML文件,试图将其解析到数据库中,但是却收到错误消息,指出某个字段超出了我的最大字符数(2000)。我已经确定了有问题的字段,但是在错误中没有行号,因此我必须在XML本身中查找和删除违规者。
下面是一个示例。我需要找到任何条目,其中“ CCCStmts Correction”和“ RoAmts”首次出现之间的字符超过2000个字符。我正在使用Notepad ++,只能认为它可以与regex一起使用。想法?
<CCCStmts Correction="sample text" />
<CCCStmts Correction="sample text" />
<CCCStmts Correction="sample text" />
<CCCStmts Correction="sample text" />
<CCCStmts Correction="sample text" />
<CCCStmts Correction="sample text" />
<CCCStmts Correction="sample text" />
<RoAmts PayType="x" AmtType="x" TotalAmt="x" />
答案 0 :(得分:0)
正则表达式不是答案。当然,您可以使用正则表达式来做到这一点,但是我想您已使用API在模型中以编程方式表示XML?或者,即使不是,也正在解析它,以便将XML中包含的相关值提交给数据库。因此,一旦获取了值,只需测试其长度,然后在符合字段要求的情况下提交即可。
要检查字符串的长度,只需使用...
// if the length is 2000 or less
if (string.length()` < 2001) {
//your routine
}
...,它将跳过任何由2001+个字符组成的值。
此方法不需要纯粹地进行额外的迭代即可搜索,也不需要进行任何替换。这样会更整洁,效率更高。