Add the following lines after the custom template comment in a new
stylesheet

<xsl:template match="input//add">
<xsl:apply-templates select="@*|node()"/>
</xsl:template>

It matches all add elements following the input element and applies the
other templates to it's children. In this case all child elements are
copied into the Body element.

You could also use a simple policy to filter out the add element.
Add the soap-env namespace to a policy and insert the rule as follows.

<rule>
<description>strip add</description>
<conditions>
<and>
<if-xpath
op="true">.[name()='soap-env:Envelope']/soap-env:Body/add</if-xpath>
</and>
</conditions>
<actions>
<do-clone-xpath
dest-expression=".[name()='soap-env:Envelope']/soap-env:Body"
src-expression=".[name()='soap-env:Envelope']/soap-env:Body/add/*"/>
<do-strip-xpath
expression=".[name()='soap-env:Envelope']/soap-env:Body/add"/>
</actions>
</rule>

The rule has a more specific node test which could also be used in the
stylesheet.

Greetings
Matthias


Am 13.06.2012 03:26, schrieb TexMix:
> <soap-env:Envelope
> xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/">
> <soap-env:Body>
> *<add>*
> <TestingSoap xmlns="urn:root/subroot/path/">
> <TestingSoapInput>
> <UserId>UserID</UserId>
> <Value>ABC</Value>
> <ValueTwo/>
> <ValueThree/>
> </TestingSoapInput>
> </TestingSoap>
> *</add>*
> </soap-env:Body>
> </soap-env:Envelope>