我使用SplitXML
-Processor将一个大XML文件分成237个小文件。作为基础,我使用根的子节点。
现在我想给每个结果文件相应的XML行标记作为filename。
例如,下面的结构导致文件名为Package
,Billing
,Policy
等…
root
|-- Package: array (nullable = true)
| |-- element: struct (containsNull = true)
| | |-- package12: array (nullable = true)
| | | |-- element: struct (containsNull = true)
| | | | |-- Type: string (nullable = true)
| | |-- Addr: struct (nullable = true)
| | | |-- Addr1: string (nullable = true)
| | | |-- Addr2: string (nullable = true)
|-- Billing: struct (nullable = true)
| |-- PhlyRepresentativeEmail: string (nullable = true)
|-- Policy: struct (nullable = true)
| |-- PolicyName: string (nullable = true)
可以拉出"新根";通过将每个FlowFile引导到ExtractText
处理器。然后使用RegEx提取相应的标记并将其存储到特定的变量中。
看到https://nifi.apache.org/docs/nifi-docs/components/org.apache.nifi/nifi-standard-nar/1.12.1/org.apache.nifi.processors.standard.ExtractText/查看更多