我使用 ExecuteSQL 处理器运行了一个存储过程,生成了一行和一个名为“xml”的列,其中包含存储过程生成的 XML。 PutMarkLogic处理器期望传入它的 FlowFiles 的内容只有 XML。如何将 FlowFile 内容转换为正确的形式?
来自 ExecuteSQL 的 FlowFiles 的内容看起来有点像这样:
Objavro.schema�{"type":"record","name":"NiFi_ExecuteSQL_Record","namespace":"any.data","fields":[{"name":"xml","type":["null","string"]}]}avro.codenull:info><es:title>instance</es:title><es:version>1.0.0</es:version></es:info><!-- more XML--></es:envelope>
这就是我将 failed
关系指向 PutFile 时所看到的(它将二进制文件写入文本,因此其中有一些时髦的控制字符)。我希望内容中包含的只是 XML 内容。
请您参考如下方法:
使用以下流程:
ExecuteSQL -> ConvertAvroToJson -> EvaluateJsonPath -> PutMarkLogic
不要忘记将 EvaluateJsonPath
输出设置为内容而不是属性