This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: xpath - how to return all nodes but the node matching avalue in an arbitrary tree?
very cool Joerg!
Does this have performance benefits (or negatives) over the (modified)
standard identity template:
<xsl:template match="node()|@*">
<xsl:if test="not(@id=$id)">
<xsl:copy>
<xsl:copy-of select="@*"/>
<xsl:apply-templates/>
</xsl:copy>
</xsl:if>
</xsl:template>
best,
-Rob
Joerg Heinicke wrote:
>> <xsl:param name="delete_id"/>
>> <xsl:template match="/">
>> <xsl:copy-of select="//category//artist[@id!=$delete_id]"/>
>> </xsl:template>
>
>
> You select all artist-elements, which don't have the $delete_id. This
> works for me.
> But I think you want something different. Try a copy whith each node
> separately:
>
> <xsl:param name="delete_id"/>
>
> <xsl:template match="*|text()|@*">
> <xsl:copy>
> <xsl:apply-templates select="*[@id != $delete_id]|text()|@*"/>
> </xsl:copy>
> </xsl:template>
>
> This stylesheet would copy the complete input to the output.
>
> A little change at the apply-templates removes the elements which
> should be deleted:
>
> <xsl:apply-templates select="*[@id != $delete_id]|text()|@*"/>
>
> Regards,
>
> Joerg
>
>
> XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
>
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list