我们可以在smooks中进行字符串操作和条件检查吗?

时间:2014-05-13 21:02:36

标签: smooks

我想操作一个大文本文件,它以TEXT形式出现,并希望使用smook来操作它。文本文件包含大量行。从每一行开始,我必须拆分字符并从中获取信息。

例如:我在java中执行以下操作;

row.substring(0, 4) 
row.substring(4, 64) 

我必须将文字内容转换为CSV文件。

  • 我们可以在smooks中完成相同的字符串操作吗? (在smooks配置中,我可以这样做吗?)我相信我可以使用固定长度处理吗?

  • 如何在smooks配置中添加IF ELSE条件? 就像在java;

    if(row.length()== 900){     //做     }其他(){     //做     }

2 个答案:

答案 0 :(得分:1)

我们可以使用固定长度阅读器[1]进行字符串操作。但我仍然没有办法做条件检查。

例如:if / else

[1] http://www.smooks.org/mediawiki/index.php?title=V1.4:Smooks_v1.4_User_Guide#XML

答案 1 :(得分:0)

如果格式不适合flatfile阅读器,那么您可以使用正则表达式阅读器:https://github.com/smooks/smooks/tree/v1.5.1/smooks-examples/flatfile-to-xml-regex/

至于有条件的东西......你真的需要将数据片段绑定到某种类型的Java模型(真实的或虚拟的),然后通过在正在应用的访问者上添加元素来有条件地处理这些片段,或者处理片段通过将它们路由到另一个并行处理它们的进程,这是处理大量数据流的一种更好的方法。