我使用 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 输出设置为内容而不是属性


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!