<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>question Replace first instance of text ocurrence with Replace Text in Apache NiFi in Support Questions</title>
    <link>https://community.cloudera.com/t5/Support-Questions/Replace-first-instance-of-text-ocurrence-with-Replace-Text/m-p/293979#M216977</link>
    <description>&lt;P&gt;I need to process some XML files that contain some doubled field names as shown is the sample below (Latitude, Longitude and Height). I need to change the 1st ocurrence in Latitude1, Longitude1, Height1 and the 2nd in Latitude2..etc so I can do a JSON conversion after.&lt;/P&gt;&lt;P&gt;What would be the best aproach to change these fields?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;&amp;lt;?xml version="1.0" encoding="UTF-8"?&amp;gt;&amp;lt;vwConnectionLog&amp;gt;&amp;lt;ID&amp;gt;18500380&amp;lt;/ID&amp;gt;&amp;lt;JobID&amp;gt;1336467&amp;lt;/JobID&amp;gt;&amp;lt;Active&amp;gt;0&amp;lt;/Active&amp;gt;&amp;lt;StartTimeConnection&amp;gt;2019-12-01 12:09:12&amp;lt;/StartTimeConnection&amp;gt;&amp;lt;StartTimeSending&amp;gt;2019-12-01 12:09:17&amp;lt;/StartTimeSending&amp;gt;&amp;lt;EndTimeConnection&amp;gt;2019-12-01 12:25:23&amp;lt;/EndTimeConnection&amp;gt;&amp;lt;FirstSiteCode&amp;gt;HORE&amp;lt;/FirstSiteCode&amp;gt;&amp;lt;FirstRefStatID&amp;gt;84&amp;lt;/FirstRefStatID&amp;gt;&amp;lt;FirstDistanceToStat&amp;gt;41913&amp;lt;/FirstDistanceToStat&amp;gt;&amp;lt;LastSiteCode&amp;gt;VLC2&amp;lt;/LastSiteCode&amp;gt;&amp;lt;LastRefStatID&amp;gt;29&amp;lt;/LastRefStatID&amp;gt;&amp;lt;LastDistanceToStat&amp;gt;35429&amp;lt;/LastDistanceToStat&amp;gt;&amp;lt;Latitude&amp;gt;0.7820122964688779&amp;lt;/Latitude&amp;gt;&amp;lt;Longitude&amp;gt;0.4227112816015234&amp;lt;/Longitude&amp;gt;&amp;lt;Height&amp;gt;234.8100&amp;lt;/Height&amp;gt;&amp;lt;JobGUID&amp;gt;f787b88a-38bc-4158-ab44-0081a52f5295&amp;lt;/JobGUID&amp;gt;&amp;lt;Time&amp;gt;2019-12-01 12:17:17&amp;lt;/Time&amp;gt;&amp;lt;ActRefStationID&amp;gt;84&amp;lt;/ActRefStationID&amp;gt;&amp;lt;ActRefStationCode&amp;gt;HORE&amp;lt;/ActRefStationCode&amp;gt;&amp;lt;ActNMEARefStationID&amp;gt;806&amp;lt;/ActNMEARefStationID&amp;gt;&amp;lt;Satellites&amp;gt;-1&amp;lt;/Satellites&amp;gt;&amp;lt;SatellitesUsed&amp;gt;22&amp;lt;/SatellitesUsed&amp;gt;&amp;lt;PositionFix&amp;gt;4&amp;lt;/PositionFix&amp;gt;&amp;lt;HDOP&amp;gt;1.7999999523162842&amp;lt;/HDOP&amp;gt;&amp;lt;Event&amp;gt;Rover state changed&amp;lt;/Event&amp;gt;&amp;lt;Latitude&amp;gt;0.7820122964688779&amp;lt;/Latitude&amp;gt;&amp;lt;Longitude&amp;gt;0.4227112816015234&amp;lt;/Longitude&amp;gt;&amp;lt;Height&amp;gt;234.81&amp;lt;/Height&amp;gt;&amp;lt;Auxiliaries/&amp;gt;&amp;lt;SatellitesGPS&amp;gt;-1&amp;lt;/SatellitesGPS&amp;gt;&amp;lt;SatellitesGlo&amp;gt;-1&amp;lt;/SatellitesGlo&amp;gt;&amp;lt;FixedSatellites&amp;gt;-1&amp;lt;/FixedSatellites&amp;gt;&amp;lt;FixedSatellitesGPS&amp;gt;-1&amp;lt;/FixedSatellitesGPS&amp;gt;&amp;lt;FixedSatellitesGLO&amp;gt;-1&amp;lt;/FixedSatellitesGLO&amp;gt;&amp;lt;UsedSatellitesFKP&amp;gt;-1&amp;lt;/UsedSatellitesFKP&amp;gt;&amp;lt;UsedSatellitesFKPGps&amp;gt;-1&amp;lt;/UsedSatellitesFKPGps&amp;gt;&amp;lt;UsedSatellitesFKPGlo&amp;gt;-1&amp;lt;/UsedSatellitesFKPGlo&amp;gt;&amp;lt;SatellitesBDS&amp;gt;-1&amp;lt;/SatellitesBDS&amp;gt;&amp;lt;FixedSatellitesBDS&amp;gt;-1&amp;lt;/FixedSatellitesBDS&amp;gt;&amp;lt;UsedSatellitesFKPBds&amp;gt;-1&amp;lt;/UsedSatellitesFKPBds&amp;gt;&amp;lt;SatellitesGAL&amp;gt;-1&amp;lt;/SatellitesGAL&amp;gt;&amp;lt;FixedSatellitesGAL&amp;gt;-1&amp;lt;/FixedSatellitesGAL&amp;gt;&amp;lt;SatellitesQZSS&amp;gt;-1&amp;lt;/SatellitesQZSS&amp;gt;&amp;lt;FixedSatellitesQZSS&amp;gt;-1&amp;lt;/FixedSatellitesQZSS&amp;gt;&amp;lt;RoverUserName&amp;gt;pop15064&amp;lt;/RoverUserName&amp;gt;&amp;lt;RoverUserCompany&amp;gt;template&amp;lt;/RoverUserCompany&amp;gt;&amp;lt;RoverUserDetail&amp;gt;pop15064 pop15064&amp;lt;/RoverUserDetail&amp;gt;&amp;lt;RoverUserClientHost&amp;gt;14693&amp;lt;/RoverUserClientHost&amp;gt;&amp;lt;HeartbeatDisconnectTime&amp;gt;300&amp;lt;/HeartbeatDisconnectTime&amp;gt;&amp;lt;SubscriptionId&amp;gt;19202&amp;lt;/SubscriptionId&amp;gt;&amp;lt;RTProductName&amp;gt;RO_VRS_3.1&amp;lt;/RTProductName&amp;gt;&amp;lt;MessageType&amp;gt;Virtual RS RTCM 3.x (Extended)&amp;lt;/MessageType&amp;gt;&amp;lt;RTCMVersion&amp;gt;4&amp;lt;/RTCMVersion&amp;gt;&amp;lt;EndOfMessage&amp;gt;Nothing&amp;lt;/EndOfMessage&amp;gt;&amp;lt;RefStationID&amp;gt;-1&amp;lt;/RefStationID&amp;gt;&amp;lt;Connection&amp;gt;NTRIP-Client&amp;lt;/Connection&amp;gt;&amp;lt;HostName&amp;gt;Proxy&amp;lt;/HostName&amp;gt;&amp;lt;PortNr&amp;gt;2101&amp;lt;/PortNr&amp;gt;&amp;lt;NtripMntp&amp;gt;RO_VRS_3.1&amp;lt;/NtripMntp&amp;gt;&amp;lt;FilePath/&amp;gt;&amp;lt;FilePathActive&amp;gt;0&amp;lt;/FilePathActive&amp;gt;&amp;lt;Authentication&amp;gt;Ntrip&amp;lt;/Authentication&amp;gt;&amp;lt;CellsSitesType&amp;gt;Automatic cells&amp;lt;/CellsSitesType&amp;gt;&amp;lt;AutoSelectCellSite&amp;gt;1&amp;lt;/AutoSelectCellSite&amp;gt;&amp;lt;DistanceForChanging&amp;gt;1000&amp;lt;/DistanceForChanging&amp;gt;&amp;lt;SatSystem&amp;gt;3&amp;lt;/SatSystem&amp;gt;&amp;lt;SendNullAntenna&amp;gt;Yes&amp;lt;/SendNullAntenna&amp;gt;&amp;lt;ErrString/&amp;gt;&amp;lt;VerboseInfoString/&amp;gt;&amp;lt;MaxDistProvCorr&amp;gt;100000&amp;lt;/MaxDistProvCorr&amp;gt;&amp;lt;FallbackDistance&amp;gt;3000&amp;lt;/FallbackDistance&amp;gt;&amp;lt;FallbackOnNWOff&amp;gt;8&amp;lt;/FallbackOnNWOff&amp;gt;&amp;lt;FallbackOnDist&amp;gt;16&amp;lt;/FallbackOnDist&amp;gt;&amp;lt;Fallforward&amp;gt;128&amp;lt;/Fallforward&amp;gt;&amp;lt;UseMaxDistProvCorr&amp;gt;4&amp;lt;/UseMaxDistProvCorr&amp;gt;&amp;lt;RoverCredentialName&amp;gt;pop15064&amp;lt;/RoverCredentialName&amp;gt;&amp;lt;/vwConnectionLog&amp;gt;&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Tue, 14 Apr 2020 19:34:13 GMT</pubDate>
    <dc:creator>Miluta</dc:creator>
    <dc:date>2020-04-14T19:34:13Z</dc:date>
    <item>
      <title>Replace first instance of text ocurrence with Replace Text in Apache NiFi</title>
      <link>https://community.cloudera.com/t5/Support-Questions/Replace-first-instance-of-text-ocurrence-with-Replace-Text/m-p/293979#M216977</link>
      <description>&lt;P&gt;I need to process some XML files that contain some doubled field names as shown is the sample below (Latitude, Longitude and Height). I need to change the 1st ocurrence in Latitude1, Longitude1, Height1 and the 2nd in Latitude2..etc so I can do a JSON conversion after.&lt;/P&gt;&lt;P&gt;What would be the best aproach to change these fields?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;&amp;lt;?xml version="1.0" encoding="UTF-8"?&amp;gt;&amp;lt;vwConnectionLog&amp;gt;&amp;lt;ID&amp;gt;18500380&amp;lt;/ID&amp;gt;&amp;lt;JobID&amp;gt;1336467&amp;lt;/JobID&amp;gt;&amp;lt;Active&amp;gt;0&amp;lt;/Active&amp;gt;&amp;lt;StartTimeConnection&amp;gt;2019-12-01 12:09:12&amp;lt;/StartTimeConnection&amp;gt;&amp;lt;StartTimeSending&amp;gt;2019-12-01 12:09:17&amp;lt;/StartTimeSending&amp;gt;&amp;lt;EndTimeConnection&amp;gt;2019-12-01 12:25:23&amp;lt;/EndTimeConnection&amp;gt;&amp;lt;FirstSiteCode&amp;gt;HORE&amp;lt;/FirstSiteCode&amp;gt;&amp;lt;FirstRefStatID&amp;gt;84&amp;lt;/FirstRefStatID&amp;gt;&amp;lt;FirstDistanceToStat&amp;gt;41913&amp;lt;/FirstDistanceToStat&amp;gt;&amp;lt;LastSiteCode&amp;gt;VLC2&amp;lt;/LastSiteCode&amp;gt;&amp;lt;LastRefStatID&amp;gt;29&amp;lt;/LastRefStatID&amp;gt;&amp;lt;LastDistanceToStat&amp;gt;35429&amp;lt;/LastDistanceToStat&amp;gt;&amp;lt;Latitude&amp;gt;0.7820122964688779&amp;lt;/Latitude&amp;gt;&amp;lt;Longitude&amp;gt;0.4227112816015234&amp;lt;/Longitude&amp;gt;&amp;lt;Height&amp;gt;234.8100&amp;lt;/Height&amp;gt;&amp;lt;JobGUID&amp;gt;f787b88a-38bc-4158-ab44-0081a52f5295&amp;lt;/JobGUID&amp;gt;&amp;lt;Time&amp;gt;2019-12-01 12:17:17&amp;lt;/Time&amp;gt;&amp;lt;ActRefStationID&amp;gt;84&amp;lt;/ActRefStationID&amp;gt;&amp;lt;ActRefStationCode&amp;gt;HORE&amp;lt;/ActRefStationCode&amp;gt;&amp;lt;ActNMEARefStationID&amp;gt;806&amp;lt;/ActNMEARefStationID&amp;gt;&amp;lt;Satellites&amp;gt;-1&amp;lt;/Satellites&amp;gt;&amp;lt;SatellitesUsed&amp;gt;22&amp;lt;/SatellitesUsed&amp;gt;&amp;lt;PositionFix&amp;gt;4&amp;lt;/PositionFix&amp;gt;&amp;lt;HDOP&amp;gt;1.7999999523162842&amp;lt;/HDOP&amp;gt;&amp;lt;Event&amp;gt;Rover state changed&amp;lt;/Event&amp;gt;&amp;lt;Latitude&amp;gt;0.7820122964688779&amp;lt;/Latitude&amp;gt;&amp;lt;Longitude&amp;gt;0.4227112816015234&amp;lt;/Longitude&amp;gt;&amp;lt;Height&amp;gt;234.81&amp;lt;/Height&amp;gt;&amp;lt;Auxiliaries/&amp;gt;&amp;lt;SatellitesGPS&amp;gt;-1&amp;lt;/SatellitesGPS&amp;gt;&amp;lt;SatellitesGlo&amp;gt;-1&amp;lt;/SatellitesGlo&amp;gt;&amp;lt;FixedSatellites&amp;gt;-1&amp;lt;/FixedSatellites&amp;gt;&amp;lt;FixedSatellitesGPS&amp;gt;-1&amp;lt;/FixedSatellitesGPS&amp;gt;&amp;lt;FixedSatellitesGLO&amp;gt;-1&amp;lt;/FixedSatellitesGLO&amp;gt;&amp;lt;UsedSatellitesFKP&amp;gt;-1&amp;lt;/UsedSatellitesFKP&amp;gt;&amp;lt;UsedSatellitesFKPGps&amp;gt;-1&amp;lt;/UsedSatellitesFKPGps&amp;gt;&amp;lt;UsedSatellitesFKPGlo&amp;gt;-1&amp;lt;/UsedSatellitesFKPGlo&amp;gt;&amp;lt;SatellitesBDS&amp;gt;-1&amp;lt;/SatellitesBDS&amp;gt;&amp;lt;FixedSatellitesBDS&amp;gt;-1&amp;lt;/FixedSatellitesBDS&amp;gt;&amp;lt;UsedSatellitesFKPBds&amp;gt;-1&amp;lt;/UsedSatellitesFKPBds&amp;gt;&amp;lt;SatellitesGAL&amp;gt;-1&amp;lt;/SatellitesGAL&amp;gt;&amp;lt;FixedSatellitesGAL&amp;gt;-1&amp;lt;/FixedSatellitesGAL&amp;gt;&amp;lt;SatellitesQZSS&amp;gt;-1&amp;lt;/SatellitesQZSS&amp;gt;&amp;lt;FixedSatellitesQZSS&amp;gt;-1&amp;lt;/FixedSatellitesQZSS&amp;gt;&amp;lt;RoverUserName&amp;gt;pop15064&amp;lt;/RoverUserName&amp;gt;&amp;lt;RoverUserCompany&amp;gt;template&amp;lt;/RoverUserCompany&amp;gt;&amp;lt;RoverUserDetail&amp;gt;pop15064 pop15064&amp;lt;/RoverUserDetail&amp;gt;&amp;lt;RoverUserClientHost&amp;gt;14693&amp;lt;/RoverUserClientHost&amp;gt;&amp;lt;HeartbeatDisconnectTime&amp;gt;300&amp;lt;/HeartbeatDisconnectTime&amp;gt;&amp;lt;SubscriptionId&amp;gt;19202&amp;lt;/SubscriptionId&amp;gt;&amp;lt;RTProductName&amp;gt;RO_VRS_3.1&amp;lt;/RTProductName&amp;gt;&amp;lt;MessageType&amp;gt;Virtual RS RTCM 3.x (Extended)&amp;lt;/MessageType&amp;gt;&amp;lt;RTCMVersion&amp;gt;4&amp;lt;/RTCMVersion&amp;gt;&amp;lt;EndOfMessage&amp;gt;Nothing&amp;lt;/EndOfMessage&amp;gt;&amp;lt;RefStationID&amp;gt;-1&amp;lt;/RefStationID&amp;gt;&amp;lt;Connection&amp;gt;NTRIP-Client&amp;lt;/Connection&amp;gt;&amp;lt;HostName&amp;gt;Proxy&amp;lt;/HostName&amp;gt;&amp;lt;PortNr&amp;gt;2101&amp;lt;/PortNr&amp;gt;&amp;lt;NtripMntp&amp;gt;RO_VRS_3.1&amp;lt;/NtripMntp&amp;gt;&amp;lt;FilePath/&amp;gt;&amp;lt;FilePathActive&amp;gt;0&amp;lt;/FilePathActive&amp;gt;&amp;lt;Authentication&amp;gt;Ntrip&amp;lt;/Authentication&amp;gt;&amp;lt;CellsSitesType&amp;gt;Automatic cells&amp;lt;/CellsSitesType&amp;gt;&amp;lt;AutoSelectCellSite&amp;gt;1&amp;lt;/AutoSelectCellSite&amp;gt;&amp;lt;DistanceForChanging&amp;gt;1000&amp;lt;/DistanceForChanging&amp;gt;&amp;lt;SatSystem&amp;gt;3&amp;lt;/SatSystem&amp;gt;&amp;lt;SendNullAntenna&amp;gt;Yes&amp;lt;/SendNullAntenna&amp;gt;&amp;lt;ErrString/&amp;gt;&amp;lt;VerboseInfoString/&amp;gt;&amp;lt;MaxDistProvCorr&amp;gt;100000&amp;lt;/MaxDistProvCorr&amp;gt;&amp;lt;FallbackDistance&amp;gt;3000&amp;lt;/FallbackDistance&amp;gt;&amp;lt;FallbackOnNWOff&amp;gt;8&amp;lt;/FallbackOnNWOff&amp;gt;&amp;lt;FallbackOnDist&amp;gt;16&amp;lt;/FallbackOnDist&amp;gt;&amp;lt;Fallforward&amp;gt;128&amp;lt;/Fallforward&amp;gt;&amp;lt;UseMaxDistProvCorr&amp;gt;4&amp;lt;/UseMaxDistProvCorr&amp;gt;&amp;lt;RoverCredentialName&amp;gt;pop15064&amp;lt;/RoverCredentialName&amp;gt;&amp;lt;/vwConnectionLog&amp;gt;&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 14 Apr 2020 19:34:13 GMT</pubDate>
      <guid>https://community.cloudera.com/t5/Support-Questions/Replace-first-instance-of-text-ocurrence-with-Replace-Text/m-p/293979#M216977</guid>
      <dc:creator>Miluta</dc:creator>
      <dc:date>2020-04-14T19:34:13Z</dc:date>
    </item>
    <item>
      <title>Re: Replace first instance of text ocurrence with Replace Text in Apache NiFi</title>
      <link>https://community.cloudera.com/t5/Support-Questions/Replace-first-instance-of-text-ocurrence-with-Replace-Text/m-p/294101#M217055</link>
      <description>&lt;P&gt;Here is the process to the point I got stuck. So I have the original xmls, I do a split to separate the child xmls that are the target of my analysis but they contain duplicate fields. I didn’t find a way to use the ReplaceText to change only the 1st encountered element in order to append an ID so it may be unique. Another approach that I found was to use a Python script attached below, that did the job, but I wonder if is there way to it in one single process.&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="nifixml.png" style="width: 999px;"&gt;&lt;img src="https://community.cloudera.com/t5/image/serverpage/image-id/27144i41F1A878AF2BE8F4/image-size/large?v=v2&amp;amp;px=999" role="button" title="nifixml.png" alt="nifixml.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;LI-CODE lang="python"&gt;import json
import java.io
from org.apache.commons.io import IOUtils
from java.nio.charset import StandardCharsets
from org.apache.nifi.processor.io import StreamCallback

class PyStreamCallback(StreamCallback):
	def __init__(self, flowfile):
		self.ff = flowfile
	pass
	def process(self, inputStream, outputStream):
		text = IOUtils.toString(inputStream, StandardCharsets.UTF_8)
		text = text.replace("&amp;lt;Latitude&amp;gt;", "&amp;lt;Latitude1&amp;gt;", 1)
		outputStream.write(bytearray(text.encode('utf-8')))

flowFile = session.get()
if (flowFile != None):
	flowFile = session.write(flowFile,PyStreamCallback(flowFile))
	session.transfer(flowFile, REL_SUCCESS)&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 16 Apr 2020 08:27:13 GMT</pubDate>
      <guid>https://community.cloudera.com/t5/Support-Questions/Replace-first-instance-of-text-ocurrence-with-Replace-Text/m-p/294101#M217055</guid>
      <dc:creator>Miluta</dc:creator>
      <dc:date>2020-04-16T08:27:13Z</dc:date>
    </item>
  </channel>
</rss>

