Allowed XPath expressions for Search Field Expressions
Nodinite enables you to extract business-critical data from massive XML payloads with high performance and scalability. This page explains which XPath expressions are supported for Search Field Expressions, so you can confidently build robust, efficient integrations.
✅ Process even the largest XML messages without loading the entire file into memory
✅ Achieve high throughput and low resource consumption for enterprise-scale integration
✅ Use only forward-only, stream-compatible XPath expressions for maximum performance
What You Will Learn
- Which XPath expressions are allowed in Nodinite Search Field Expressions
- Best practices for building scalable, high-performance integrations
- How to avoid common pitfalls and troubleshoot XPath limitations
Overview: Forward-Only XPath for Performance
The Logging Service extracts Search Field values from Search Fields using configured Search Field Expressions. XML messages can be extremely large, and Nodinite XPath plugins use a read-only, forward-only stream reader to efficiently process even the largest messages. This design ensures high performance and scalability for enterprise integration scenarios, but it also means that not all XPath expressions are supported. Only expressions compatible with forward-only reading are allowed.
Why Nodinite?
Nodinite empowers you to extract business-critical data from massive XML payloads without loading the entire document into memory, reducing resource consumption and boosting throughput. This is a unique selling point for organizations handling high-volume, complex integrations.
Diagram: How Message Types, XPath Search Field Expressions, and Search Fields connect in Nodinite.
Allowed XPath Expressions: Examples
The following table lists valid XPath expressions you can rely on for your use cases. All examples are compatible with Nodinite's forward-only stream reader.
Expression | Message | Output |
---|---|---|
/e |
<e>1</e> |
1 |
child::node() |
<e>1</e> |
1 |
e/child::node() |
<e>1</e> |
1 |
e/a/child::text() |
<e><a>1</a><b>2</b></e> |
1 |
e/a[@name='A']/child::text() |
<e><a name="A">1</a><a name="B">2</a></e> |
1 |
e/a/@name |
<e><a name="A">1</a><a name="B">2</a></e> |
A B |
e/a/attribute::* |
<e><a name="A">1</a><a name="B">2</a></e> |
A B |
Tip
Always test your XPath expressions using the Web Client and the Test Tab before starting a re-index operation.
Important
Be cautious with your XPath expressions when using XPathReader. It is limited to the capabilities of the underlying XmlTextReader, which can only move forward through the stream. Expressions that require backward navigation (such as
parent::node()
) will throw an exception. Despite these limitations, Nodinite enables you to evaluate XPath expressions efficiently, even for very large XML documents, without the overhead of loading the entire file into memory.
Next Step
Related Topics
Expression Type |
---|
Flat File Fixed Width |
Message Context Key |
RegEx |
XPath |