2. Enterprise Integration Patterns

xmlContentFilter

Version

The xmlContentFilter removes certain XML elements from message bodies. The elements are described using an XPath expression.

Explanation:

If the XPath expression is simple enough, a StAX-Parser is used to determine whether the XPath might match a message at all. This can improve performance significantly, as a DOM tree does probably not have to to be constructed for every message. This is, for example, the case in

<xmlContentFilter xPath="//*[local-name()='Fault' and namespace-uri()='http://schemas.xmlsoap.org/soap/envelope/']//*[local-name()='stacktrace']" />xmlContentFilter using a StAX-Parser for improved performancewhere the existence of the <Fault>-element is checked using the StAX-parser before the DOM is constructed.

If the message body is not well-formed XML, it is left unchanged. If the message is XOP-encoded, the XPath-expression is run on the reconstituted message; if it matches, the message is replaced by the modified reconstituted message.


Example Configuration

api:
port: 2000
flow:
- response:
- xmlContentFilter:
xPath: //book/reviews
target:
url: https://membrane-api.io
api:
   port: 2000
   flow:
     - response:
         - xmlContentFilter:
             xPath: //book/reviews
   target:
     url: https://membrane-api.io

Syntax

xmlContentFilter:
xPath: <string> # required
xmlContentFilter:
  xPath: <string> # required

Attributes

NameRequiredDefaultDescriptionExamples
xPathtrue-An XPath 1.0 expression describing the elements to be removed from message bodies.-

Can be used in