Я получаю файлы данных от 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 (работает нормально), который выводит FlowFile с xml, содержащим содержимое в двойных кавычках, в другой процессор (ExtractText?), Выводя FlowFile с xml без окружающего содержимого в двойных кавычках, в процессор PutFile (работает) отлично).
Открыт и для других предложений! Я также думал о добавлении процессора для выполнения некоторого кода, если бы он мог редактировать файл. Хотя кажется грязным.