分割符报文插件(SplitFilter)
插件配置
- 配置声明在commons.xml中
<filter id="splitFilter" class="SplitFilter">
<parameter name="split_strategy" value="|"/>
</filter>
属性 | 说明 |
---|---|
id | 插件声明定义的id |
class | 声明的插件类名 |
- 子节点parameter:配置参数项。用来指定分隔策略
属性 | 描述 | 值类型 | 示例 |
---|---|---|---|
Name | 标识 | string | split_strategy表示分隔策略 |
value | 值 | string | 当前字段的值 |
属性配置
filter属性
属性 | 描述 | 值类型 | 示例 |
---|---|---|---|
ref | 引用 | string | 引用已经定义好的filter对象 |
type | 数据流向 | string | in、out |
filed属性
filter中处理的操作单个数据域,用于从数据报中提取填充特定位置的数据。
属性 | 描述 | 值类型 | 示例 |
---|---|---|---|
tag | 标识 | string | filter中字段的标识,作为key存入上下文; |
etag | 特殊标志 | string | 变长有分隔符的etag表示第几个域,etag的值从0开始。 |
value | 值 | string | 当前字段的值; |
使用规则
- 子节点foreach、while、if、else、elseif之间支持多层嵌套使用。
- 属性ref为必配项,其他为可选项,必须正确指定到filters中的定义的Splitfilter的id属性;
- 此处引用的filter与filters中定义的filter在节点上存在明显差异,定义的filter只有parameter子节点(用来指定分隔策略),而此处无parameter子节点;
- 需要特别注意数据流向的配置,in代表输入流,out代表输出流,针对in、out存在不同的处理;
组装变长有分隔符报文
- Type为out指报文组包
输出:
解析变长有分隔符报文
- 使用SplitFilter进行变长有分隔符字符串报文的组装和解析。需要指定分隔策略。
- tips:变长有分隔符的etag表示第几个域,etag的值从0开始。
对测试数据:aaa|dd|cccgg进行解报
输出: