【发布时间】:2019-06-13 18:36:12
【问题描述】:
我从 Kafka 获取 XML 或 AVRO 格式的数据文件。每条消息都用双引号括起来(例如“...”)。我想使用 NiFi 删除内容周围的双引号。
我无法使用 ReplaceText 处理器删除所有双引号,因为某些标签在其属性中使用双引号。
我正在尝试使用 ExtractText 处理器,但据我了解,正则表达式的输出将被放入一个属性中,而不是替换 FlowFile 内容。另外,我不确定为正则表达式写什么,因为我需要使用内容长度来删除第一个和最后一个字符。另外,我不能在正则表达式中使用标签名称,因为我也需要对其他内容做同样的事情。
这是一个示例,说明如何使用周围的双引号设置 XML 文件以及使用带双引号的属性的一些标签。
"<?xml version="1.0" encoding="UTF-8" standalone="yes"?><t1:Foo1><t2:Foo2 reportIndicator="...">...</t2:Foo2></t1:Foo1>"
我希望使用 ConsumeKafka_0_10 处理器(工作正常)将带有包含双引号内容的 xml 的 FlowFile 输出到另一个处理器(ExtractText?),将带有 xml 的 FlowFile 不包含双引号内容输出到 PutFile 处理器(工作很好)。
也欢迎其他建议!如果可以编辑文件,我还考虑添加一个处理器来执行一些代码。不过看起来很乱。
【问题讨论】: