我想操作一个大文本文件,它以TEXT形式出现,并希望使用smook来操作它。文本文件包含大量行。从每一行开始,我必须拆分字符并从中获取信息。
例如:我在java中执行以下操作;
row.substring(0, 4)
row.substring(4, 64)
我必须将文字内容转换为CSV文件。
我们可以在smooks中完成相同的字符串操作吗? (在smooks配置中,我可以这样做吗?)我相信我可以使用固定长度处理吗?
如何在smooks配置中添加IF ELSE条件? 就像在java;
if(row.length()== 900){ //做 }其他(){ //做 }
答案 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模型(真实的或虚拟的),然后通过在正在应用的访问者上添加元素来有条件地处理这些片段,或者处理片段通过将它们路由到另一个并行处理它们的进程,这是处理大量数据流的一种更好的方法。