In my custom processor, I'm using a SAX parser to process an incoming flowfile that's in XML. Except that, this particular XML is in essence two different files and I would like to split, read and process the first "half", which starts a couple of lines (XML elements) into the file) not using the SAX parser. At the end, I would stream the output of the first half, then the SAX-processed second half.

So, in short:

1. process the incoming flowfile for the early content not using SAX,
   but merely copying as-is; at all cost I must avoid "reassembling"
   the first half using my SAX handler (what I'm doing now),
2. output the first part down the output stream to the resulting flowfile,
3. (re)process the incoming flowfile using SAX (and I can just skip
   over the first bit) and spitting the result of this second part out
   down the output stream of the resulting flowfile.

I guess this is tantamount to asking how, in Java, I can read an input stream twice (or one-half plus one times). Maybe it's less a NiFi developer question and more a Java question. I have looked at it that way too, but, if one of you knows (particularly NiFi) best practice, I would very much like to hear about it.

Thanks.

Reply via email to