xmlContentFilter
Can be used in
proxy, serviceProxy, soapProxy, transport
Syntax
<xmlContentFilter xPath="string" />
Sample
<proxies> <serviceProxy port="2000"> <response> <xmlContentFilter xPath="//book/reviews" /> </response> <target host="www.membrane-soa.org" /> </serviceProxy> </proxies>
Attributes
Name | Mandatory | Description |
---|---|---|
xPath | yes | An XPath 1.0 expression describing the elements to be removed from message bodies. |
Description
The xmlContentFilter removes certain XML elements from message bodies. The elements are described using an XPath expression.
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']" />
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.
Related Interceptors
Flow
This interceptor is by default applied to both requests and responses. By wrapping it in an <request>...</request> (or <response>...</response>) element, you can select to apply it only to requests (or only to responses). See request and response.