<extensionManifest><groupId>org.apache.nifi</groupId><artifactId>nifi-html-nar</artifactId><version>1.22.0</version><parentNar><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>1.22.0</version></parentNar><systemApiVersion>1.22.0</systemApiVersion><buildInfo><tag>nifi-1.22.0-RC1</tag><branch>UNKNOWN</branch><revision>71e3ea9</revision></buildInfo><extensions><extension><name>org.apache.nifi.GetHTMLElement</name><type>PROCESSOR</type><description>Extracts HTML element values from the incoming flowfile's content using a CSS selector. The incoming HTML is first converted into a HTML Document Object Model so that HTML elements may be selected in the similar manner that CSS selectors are used to apply styles to HTML. The resulting HTML DOM is then "queried" using the user defined CSS selector string. The result of "querying" the HTML DOM may produce 0-N results. If no results are found the flowfile will be transferred to the "element not found" relationship to indicate so to the end user. If N results are found a new flowfile will be created and emitted for each result. The query result will either be placed in the content of the new flowfile or as an attribute of the new flowfile. By default the result is written to an attribute. This can be controlled by the "Destination" property. Resulting query values may also have data prepended or appended to them by setting the value of property "Prepend Element Value" or "Append Element Value". Prepended and appended values are treated as string values and concatenated to the result retrieved from the HTML DOM query operation. A more thorough reference for the CSS selector syntax can be found at "http://jsoup.org/apidocs/org/jsoup/select/Selector.html"</description><tags><tag>get</tag><tag>html</tag><tag>dom</tag><tag>css</tag><tag>element</tag></tags><properties><property><name>URL</name><displayName>URL</displayName><description>Base URL for the HTML page being parsed. This URL will be used to resolve an absolute URL when an attribute value is extracted from a HTML element.</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>CSS Selector</name><displayName>CSS Selector</displayName><description>CSS selector syntax string used to extract the desired HTML element(s).</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>HTML Character Encoding</name><displayName>HTML Character Encoding</displayName><description>Character encoding of the input HTML</description><defaultValue>UTF-8</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Output Type</name><displayName>Output Type</displayName><description>Controls the type of DOM value that is retrieved from the HTML element.</description><defaultValue>HTML</defaultValue><allowableValues><allowableValue><displayName>HTML</displayName><value>HTML</value><description></description></allowableValue><allowableValue><displayName>Text</displayName><value>Text</value><description></description></allowableValue><allowableValue><displayName>Attribute</displayName><value>Attribute</value><description></description></allowableValue><allowableValue><displayName>Data</displayName><value>Data</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Destination</name><displayName>Destination</displayName><description>Control if element extracted is written as a flowfile attribute or as flowfile content.</description><defaultValue>flowfile-attribute</defaultValue><allowableValues><allowableValue><displayName>flowfile-attribute</displayName><value>flowfile-attribute</value><description></description></allowableValue><allowableValue><displayName>flowfile-content</displayName><value>flowfile-content</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Prepend Element Value</name><displayName>Prepend Element Value</displayName><description>Prepends the specified value to the resulting Element</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Append Element Value</name><displayName>Append Element Value</displayName><description>Appends the specified value to the resulting Element</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Attribute Name</name><displayName>Attribute Name</displayName><description>When getting the value of a HTML element attribute this value is used as the key to determine which attribute on the selected element should be retrieved. This value is used when the "Output Type" is set to "Attribute". If this value is prefixed with 'abs:', then the extracted attribute value will be converted into an absolute URL form using the specified base URL.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><relationships><relationship><name>element not found</name><description>Element could not be found in the HTML document. The original HTML input will remain in the FlowFile content unchanged. Relationship 'original' will not be invoked in this scenario.</description><autoTerminated>false</autoTerminated></relationship><relationship><name>success</name><description>Successfully parsed HTML element</description><autoTerminated>false</autoTerminated></relationship><relationship><name>original</name><description>The original HTML input</description><autoTerminated>false</autoTerminated></relationship><relationship><name>invalid html</name><description>The input HTML syntax is invalid</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes><writesAttribute><name>HTMLElement</name><description>Flowfile attribute where the element result parsed from the HTML using the CSS selector syntax are placed if the destination is a flowfile attribute.</description></writesAttribute></writesAttributes><supportsBatching>true</supportsBatching><inputRequirement>INPUT_REQUIRED</inputRequirement><seeAlso><see>org.apache.nifi.ModifyHTMLElement</see><see>org.apache.nifi.PutHTMLElement</see></seeAlso></extension><extension><name>org.apache.nifi.ModifyHTMLElement</name><type>PROCESSOR</type><description>Modifies the value of an existing HTML element. The desired element to be modified is located by using CSS selector syntax. The incoming HTML is first converted into a HTML Document Object Model so that HTML elements may be selected in the similar manner that CSS selectors are used to apply styles to HTML. The resulting HTML DOM is then "queried" using the user defined CSS selector string to find the element the user desires to modify. If the HTML element is found the element's value is updated in the DOM using the value specified "Modified Value" property. All DOM elements that match the CSS selector will be updated. Once all of the DOM elements have been updated the DOM is rendered to HTML and the result replaces the flowfile content with the updated HTML. A more thorough reference for the CSS selector syntax can be found at "http://jsoup.org/apidocs/org/jsoup/select/Selector.html"</description><tags><tag>modify</tag><tag>html</tag><tag>dom</tag><tag>css</tag><tag>element</tag></tags><properties><property><name>CSS Selector</name><displayName>CSS Selector</displayName><description>CSS selector syntax string used to extract the desired HTML element(s).</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>HTML Character Encoding</name><displayName>HTML Character Encoding</displayName><description>Character encoding of the input HTML</description><defaultValue>UTF-8</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Output Type</name><displayName>Output Type</displayName><description>Controls whether the HTML element is output as HTML,Text or Data</description><defaultValue>HTML</defaultValue><allowableValues><allowableValue><displayName>HTML</displayName><value>HTML</value><description></description></allowableValue><allowableValue><displayName>Text</displayName><value>Text</value><description></description></allowableValue><allowableValue><displayName>Attribute</displayName><value>Attribute</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Modified Value</name><displayName>Modified Value</displayName><description>Value to update the found HTML elements with</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Attribute Name</name><displayName>Attribute Name</displayName><description>When modifying the value of an element attribute this value is used as the key to determine which attribute on the selected element will be modified with the new value.</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><relationships><relationship><name>element not found</name><description>Element could not be found in the HTML document. The original HTML input will remain in the FlowFile content unchanged. Relationship 'original' will not be invoked in this scenario.</description><autoTerminated>false</autoTerminated></relationship><relationship><name>success</name><description>Successfully parsed HTML element</description><autoTerminated>false</autoTerminated></relationship><relationship><name>original</name><description>The original HTML input</description><autoTerminated>false</autoTerminated></relationship><relationship><name>invalid html</name><description>The input HTML syntax is invalid</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes><writesAttribute><name>NumElementsModified</name><description>Total number of HTML element modifications made</description></writesAttribute></writesAttributes><supportsBatching>true</supportsBatching><inputRequirement>INPUT_REQUIRED</inputRequirement><seeAlso><see>org.apache.nifi.GetHTMLElement</see><see>org.apache.nifi.PutHTMLElement</see></seeAlso></extension><extension><name>org.apache.nifi.PutHTMLElement</name><type>PROCESSOR</type><description>Places a new HTML element in the existing HTML DOM. The desired position for the new HTML element is specified by using CSS selector syntax. The incoming HTML is first converted into a HTML Document Object Model so that HTML DOM location may be located in a similar manner that CSS selectors are used to apply styles to HTML. The resulting HTML DOM is then "queried" using the user defined CSS selector string to find the position where the user desires to add the new HTML element. Once the new HTML element is added to the DOM it is rendered to HTML and the result replaces the flowfile content with the updated HTML. A more thorough reference for the CSS selector syntax can be found at "http://jsoup.org/apidocs/org/jsoup/select/Selector.html"</description><tags><tag>put</tag><tag>html</tag><tag>dom</tag><tag>css</tag><tag>element</tag></tags><properties><property><name>CSS Selector</name><displayName>CSS Selector</displayName><description>CSS selector syntax string used to extract the desired HTML element(s).</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>HTML Character Encoding</name><displayName>HTML Character Encoding</displayName><description>Character encoding of the input HTML</description><defaultValue>UTF-8</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Element Insert Location Type</name><displayName>Element Insert Location Type</displayName><description>Controls whether the new element is prepended or appended to the children of the Element located by the CSS selector. EX: prepended value '&lt;b&gt;Hi&lt;/b&gt;' inside of Element (using CSS Selector 'p') '&lt;p&gt;There&lt;/p&gt;' would result in '&lt;p&gt;&lt;b&gt;Hi&lt;/b&gt;There&lt;/p&gt;'. Appending the value would result in '&lt;p&gt;There&lt;b&gt;Hi&lt;/b&gt;&lt;/p&gt;'</description><defaultValue>append-html</defaultValue><allowableValues><allowableValue><displayName>append-html</displayName><value>append-html</value><description></description></allowableValue><allowableValue><displayName>prepend-html</displayName><value>prepend-html</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Put Value</name><displayName>Put Value</displayName><description>Value used when creating the new Element. Value should be a valid HTML element. The text should be supplied unencoded: characters like '&lt;', '&gt;', etc will be properly HTML encoded in the resulting output.</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><relationships><relationship><name>element not found</name><description>Element could not be found in the HTML document. The original HTML input will remain in the FlowFile content unchanged. Relationship 'original' will not be invoked in this scenario.</description><autoTerminated>false</autoTerminated></relationship><relationship><name>success</name><description>Successfully parsed HTML element</description><autoTerminated>false</autoTerminated></relationship><relationship><name>original</name><description>The original HTML input</description><autoTerminated>false</autoTerminated></relationship><relationship><name>invalid html</name><description>The input HTML syntax is invalid</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes></writesAttributes><supportsBatching>true</supportsBatching><inputRequirement>INPUT_REQUIRED</inputRequirement><seeAlso><see>org.apache.nifi.GetHTMLElement</see><see>org.apache.nifi.ModifyHTMLElement</see></seeAlso></extension></extensions></extensionManifest>