apache-kafka - NiFi - 如何从 FlowFile 内容中删除周围的双引号

标签 apache-kafka apache-nifi

我从 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 处理器(工作)很好)。

也欢迎其他建议!我还在考虑添加一个处理器来执行一些代码(如果可以编辑文件)。虽然看起来很乱。

最佳答案

如果您确定内容以 " 开头和结尾,您可以使用ReplaceText删除那些处理器并保留“内部”"

  • 搜索值:^"(.*)"$ (这意味着“任何内容”的捕获组必须在内容的确切开头和结尾处用双引号引起来)
  • 重置值(value):$1 (这意味着将内容替换为排除初始和最终 " 的捕获组)

关于apache-kafka - NiFi - 如何从 FlowFile 内容中删除周围的双引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56586714/

相关文章:

apache-nifi:使用模板时如何避免重复

spring-boot - 事件、 channel 、主题之间有什么区别?

apache-spark - 在 Spark Streaming (Spark 2.0) 中使用 Kafka

java - 如何增加Kafka Topic的分区数量

java - 同一集群上的多个 Kafka 版本

python - 如何将参数传递给Nifi中的python脚本

java - spring-kafka 中未应用最小获取字节数属性

mysql - 在NIFI中使用putdatabaserecord将数据放入MySQL

hadoop - 如何使用本地 Windows Box 上安装的 Apache Nifi 实例连接到安装了 Hadoop 的远程 Linux 节点?

java - QNX 上的 Apache Nifi