Hello Everyone,
I have something like this, where there can be any number of <track>
elements and sometimes there is a <multipart> element.
Most of the elements do have attributes.
<root>
<disk>
<tracks>
<track>
<multipart></mulitpart>
<length></length>
<measure></measure>
</track>
<track>
<length></length>
<measure></measure>
</track>
</tracks>
<disk>
<disk>
<tracks>
<track>
<length></length>
<measure></measure>
</track>
<track>
<length></length>
<measure></measure>
</track>
</tracks>
<tracks>
<track>
<length></length>
<measure></measure>
</track>
<track>
<multipart></mulitpart>
<length></length>
<measure></measure>
</track>
</tracks>
<disk>
</root>
Depending on the value of the <multipart> element I want to insert
another <track> element in that specific <tracks>, but it has to be the
last one.
The lines below work fine for inserting a new <track> element in every
<disk>. And I tried a lot to figure out a way for
What the lines below do:
- Copy all nodes
- Insert a new element <track> in every <disk> at the last position
What I want them to do:
- Copy all nodes
- Insert a new element <track> in every <disk> at the last position only
if an attribute of <multipart> has a specific value.
<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()" />
</xsl:copy>
</xsl:template>
<xsl:template match="/root/disk/tracks/track">
<xsl:copy>
<xsl:apply-templates select="@*|node()" />
</xsl:copy>
<xsl:if test="position()=last()">
<xsl:element name="track">
<xsl:attribute name="length">....</xsl:attribute>
...
</xsl:element>
</xsl:if>
</xsl:template>
</xsl:stylesheet>
I tried a lot of different positions of another <xsl:if>, but all I got,
was either the result above, or a mulitple insertion of new <track>
elements.
Does anybody have a hint, where and how I should add something like
<xsl:if test="multipart/@attribute=desired_value"> ??
I'm using xslt 1.0 and xmlstarlet (http://xslstar.sourceforge.net)
Thank you very much.
Gerhard
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--