Результаты XML из ExecuteSQL в PutMarkLogic - PullRequest
0 голосов
/ 15 февраля 2019

Я использовал процессор ExecuteSQL для запуска хранимой процедуры, в результате чего появилась одна строка с одним столбцом под названием «xml», который содержит XML, сгенерированный хранимой процедурой.Процессор PutMarkLogic ожидает, что поступающее к нему содержимое FlowFiles будет иметь только XML.Как я могу получить содержимое FlowFile в нужной форме?

Содержимое FlowFiles, поступающее из ExecuteSQL, выглядит примерно так:

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.

Ответы [ 2 ]

0 голосов
/ 15 февраля 2019

Используйте следующий поток:

ExecuteSQL -> ConvertAvroToJson -> EvaluateJsonPath -> PutMarkLogic 

Не забудьте установить EvaluateJsonPath вывод содержимого вместо атрибута

0 голосов
/ 15 февраля 2019

Возможно, вы захотите использовать ReplaceText с регулярным выражением для удаления содержимого, отличного от XML.Если вы предоставите пример вывода и желаемый «целевой» контент, я могу дать вам регулярное выражение для этого.

...