# XPath

### Overview

The **XPath XML Extractor Component** extracts data from XML content using a specified XPath expression. This allows precise retrieval of elements, attributes, or values from structured XML data.

### Usage

This component takes an XML string as input and applies an XPath query to extract specific information.

#### Input Ports

| Port | Description                                                   |
| ---- | ------------------------------------------------------------- |
| `in` | Accepts an XML string and an XPath expression for processing. |

**Input Properties**

| Property | Type     | Description                                                 |
| -------- | -------- | ----------------------------------------------------------- |
| `xml`    | `string` | XML content to process.                                     |
| `xpath`  | `string` | XPath expression for selecting elements. E.g., `'//title'`. |

#### Output Ports

| Port  | Description                                                         |
| ----- | ------------------------------------------------------------------- |
| `out` | Provides the extracted data from XML based on the XPath expression. |

**Output Properties**

| Property | Type     | Description                                         |
| -------- | -------- | --------------------------------------------------- |
| `result` | `string` | Extracted data based on the given XPath expression. |

#### Processing Logic

1. **Parse XML Input**: Converts the input XML string into a DOM object.
2. **Apply XPath Expression**: Executes the XPath query on the parsed XML.
3. **Format Extracted Data**: If multiple matches are found, results are concatenated into a single string.
4. **Send Output**: The extracted data is emitted through the `out` port.

### Notes

* **Flexible Queries**: Supports selecting elements, attributes, and text nodes via XPath.
* **Handles Multiple Matches**: When multiple elements match the XPath, results are concatenated.
* **Efficient XML Parsing**: Uses `xmldom` and `xpath` libraries for reliable parsing and selection.

This component provides a powerful way to extract and manipulate XML data using XPath expressions, making it highly useful for XML-based workflows.
