|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] RE: adding attribute to copy
Hi,
> i need an XSL stylesheet that transforms an XML input so that
> there ist
> he same output
> only one attribute has to be added to one element called <richtext>
> it is the attribute xmlns="..."
> so taht it says <richtext xmlns=""> in the output-
Think again. You're not trying to add an attribute, you're trying to change the default namespace URI of richtext element and all it's children - actually you didn't specify if you wanted to change it for all descendants or just those who have the same NS-URI as richtext originally had. Try something like this
<xsl:variable name="new" select="'http://your.new.and.improved.namespace.uri'" />
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="*[local-name() = 'richtext']">
<xsl:element name="{local-name()}" namespace="{$new}">
<xsl:apply-templates select="@*|node()" mode="ns">
<xsl:with-param name="old" select="namespace-uri()" />
</xsl:apply-templates>
</xsl:element>
</xsl:template>
<xsl:template match="*[local-name() = 'richtext']" mode="ns">
<xsl:param name="old" />
<xsl:element name="{local-name()}" namespace="{$new}">
<xsl:apply-templates select="@*|node()" mode="ns">
<xsl:with-param name="old" select="namespace-uri()" />
</xsl:apply-templates>
</xsl:element>
</xsl:template>
<xsl:template match="@*|node()" mode="ns">
<xsl:param name="old" />
<xsl:choose>
<xsl:when test="namespace-uri() = $old and self::*">
<xsl:element name="{name()}" namespace="{$new}">
<xsl:apply-templates select="@*|node()" mode="ns">
<xsl:with-param name="old" select="$old" />
</xsl:apply-templates>
</xsl:element>
</xsl:when>
<xsl:otherwise>
<xsl:copy>
<xsl:apply-templates select="@*|node()" mode="ns">
<xsl:with-param name="old" select="$old" />
</xsl:apply-templates>
</xsl:copy>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
That probably won't handle all cases,
Jarno
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|

Cart








