0

我有一个 XML 文件,我正试图将其解析到我的数据库中,但收到一条错误消息,指出某个字段超出了我的最大字符数 (2000)。我已经确定了有问题的字段,但我的错误中没有行号,所以我必须在 XML 本身中查找并删除违规者。

下面是一个示例。我需要找到第一次出现“CCCStmts Correction”和“RoAmts”之间的字符超过 2000 个字符的条目。我正在使用记事本++,只能认为这适用于正则表达式。想法?

   <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" />
4

1 回答 1

0

正则表达式不是答案。当然,您可以使用正则表达式来做到这一点,但我假设您已经使用 API 在模型中以编程方式表示 XML?或者,即使不是,您正在解析它以便将 XML 中包含的相关值提交到您的数据库。所以一旦你获得了值,只需测试它的长度,如果它符合字段的要求,就提交它。

要检查字符串的长度,只需使用...

// if the length is 2000 or less
if (string.length()` < 2001) {
    //your routine
}

...它会跳过任何由 2001+ 个字符组成的值。

这种方法不需要纯粹的额外迭代来搜索,也不需要进行任何替换。它会更整洁,效率更高。

于 2018-06-21T20:51:22.773 回答