Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>This stylesheet:</p> <pre><code>&lt;xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt; &lt;xsl:param name="old_namespace" select="'positionNS'"/&gt; &lt;xsl:param name="old_element_localname" select="'getPositionRouter'"/&gt; &lt;xsl:param name="new_namespace_prefix" select="'x'"/&gt; &lt;xsl:param name="new_namespace" select="'newPositionNS'"/&gt; &lt;xsl:param name="new_element_localname" select="'getPosition'" /&gt; &lt;xsl:template match="*"&gt; &lt;xsl:choose&gt; &lt;xsl:when test="local-name()=$old_element_localname and namespace-uri()=$old_namespace"&gt; &lt;xsl:element name="{substring(concat($new_namespace_prefix,':'), 1 div boolean($new_namespace_prefix))}{ $new_element_localname}" namespace="{$new_namespace}"&gt; &lt;xsl:apply-templates select="@*|node()"/&gt; &lt;/xsl:element&gt; &lt;/xsl:when&gt; &lt;xsl:otherwise&gt; &lt;xsl:element name="{name()}"&gt; &lt;xsl:apply-templates select="@*|node()"/&gt; &lt;/xsl:element&gt; &lt;/xsl:otherwise&gt; &lt;/xsl:choose&gt; &lt;/xsl:template&gt; &lt;xsl:template match="@*"&gt; &lt;xsl:attribute name="{name()}"&gt; &lt;xsl:value-of select="."/&gt; &lt;/xsl:attribute&gt; &lt;/xsl:template&gt; &lt;/xsl:stylesheet&gt; </code></pre> <p>Output:</p> <pre><code>&lt;x:getPosition xmlns:x="newPositionNS"&gt; &lt;positionID&gt; &lt;code&gt;1&lt;/code&gt; &lt;/positionID&gt; &lt;parameter&gt;?&lt;/parameter&gt; &lt;/x:getPosition&gt; </code></pre> <p><strong>Note</strong>: If you want an specific prefix you should add it to the QName. If you want to remove in-scope namespace you shouldn't use <code>xsl:copy</code> in XSLT 1.0</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload