[英]How to write a mapping.xml file when we are trying to read Multiple input Formats using BeanIO
[英]How read CSV file filtering by line with Beanio?
我想用 BeanIO 读取 CSV 文件,我只想要以“CA”开头的行跳过行的 rest。 我需要“CA”行的值“0”“1”“2”和“3”“4”“5”
AA123
BA456
CA789
CA012
CA345
DA678
EA901
BeanIO 有一个 XML 映射器。
<stream name="InfoCSV" format="csv">
<record name="info" class="com.example.Info" minOccurs="0" maxOccurs="unbounded">
<field name="digit1" />
<field name="digit2" />
<field name="digit3" />
</record>
</stream>
如何过滤线条? 我不知道 XML 解析器如何
首先,根据您显示的数据,您必须使用csv
fixedlength
<stream name="InfoCSV" format="fixedlength" />
附录 A par 7 Streams有一个名为ignoreUnidentifiedRecords
的配置设置,您需要忽略不以“CA”开头的记录/行。
您还需要告诉解析器如何识别您感兴趣的记录/行。 第 4.2.1 节解释了记录识别如何与rid="true"
和literal
属性一起工作。 如果我们假设前 2 个字符标识您感兴趣的记录/行,我们有:
<field name="id" position="0" length="2" rid="true" literal="CA" />
把它们放在一起:
<stream name="InfoCSV" format="fixedlength" ignoreUnidentifiedRecords="true">
<record name="info" class="com.example.Info" minOccurs="0" maxOccurs="unbounded">
<field name="id" position="0" length="2" rid="true" literal="CA"/>
<field name="digit1" position="2" length="1" />
<field name="digit2" position="3" length="1" />
<field name="digit3" position="4" length="1" />
</record>
</stream>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.