|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: variablesAsCounters
Hi Manousos,
Please try the following XSL -
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="/SHAPE">
<SHAPE>
<xsl:copy-of select="ELEM_INFO"/>
<xsl:variable name="x"
select="ELEM_INFO/ELEM_INFO_ITEM[1]"/>
<xsl:variable name="y"
select="ELEM_INFO/ELEM_INFO_ITEM[4]"/>
<xsl:variable name="z"
select="ELEM_INFO/ELEM_INFO_ITEM[7]"/>
<COORDINATES>
<xsl:for-each
select="COORDINATES/COORDINATES_ITEM">
<xsl:choose>
<xsl:when test="(position() = $x) or (position()
= $y) or (position() = $z)">
<COORDINATES_ITEM>
<xsl:value-of select="concat('d',.)"/>
</COORDINATES_ITEM>
</xsl:when>
<xsl:otherwise>
<COORDINATES_ITEM>
<xsl:value-of select="."/>
</COORDINATES_ITEM>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
</COORDINATES>
</SHAPE>
</xsl:template>
</xsl:stylesheet>
Regards,
Mukul
--- mankar@xxxxxxxxxxxxxxx wrote:
> I was wondering if someone could, by the use of one
> stylesheet, select the
> values of the first,
> the fourth and the seventh <ELEM_INFO_ITEM> children
> of <ELEM_INFO>
> element. Note that the number
> of <ELEM_INFO_ITEM> nodes is not predefined.In this
> example there are
> exactly nine nodes, but
> in other cases there might be only three or twelve
> etch, but always number
> that is multiple of
> three.
>
> I then would like to use the extracted values as
> counter values, to apply
> counting on
> the COORDINATE_ITEM nodeset and select specific
> COORDINATE_ITEM elements.In
> this example, based
> on the extracted values (1, 7 and 11 ), i would like
> to select the first,
> seventh and eleventh
> COORDINATE_ITEM elements content.
>
> The source xml is the one following:
>
> <SHAPE>
> <ELEM_INFO>
> <ELEM_INFO_ITEM>1</ELEM_INFO_ITEM>
> <ELEM_INFO_ITEM>1001</ELEM_INFO_ITEM>
> <ELEM_INFO_ITEM>5000</ELEM_INFO_ITEM>
>
> <ELEM_INFO_ITEM>7</ELEM_INFO_ITEM>
> <ELEM_INFO_ITEM>1002</ELEM_INFO_ITEM>
> <ELEM_INFO_ITEM>5000</ELEM_INFO_ITEM>
>
> <ELEM_INFO_ITEM>11</ELEM_INFO_ITEM>
> <ELEM_INFO_ITEM>1003</ELEM_INFO_ITEM>
> <ELEM_INFO_ITEM>5000</ELEM_INFO_ITEM>
> </ELEM_INFO>
> <COORDINATES>
> <COORDINATES_ITEM>68</COORDINATES_ITEM> !first
> <COORDINATES_ITEM>54</COORDINATES_ITEM>
> <COORDINATES_ITEM>72/COORDINATES_ITEM>
> <COORDINATES_ITEM>65</COORDINATES_ITEM>
> <COORDINATES_ITEM>83</COORDINATES_ITEM>
> <COORDINATES_ITEM>17</COORDINATES_ITEM>
> <COORDINATES_ITEM>20</COORDINATES_ITEM>
> !seventh
> <COORDINATES_ITEM>60</COORDINATES_ITEM>
> <COORDINATES_ITEM>24</COORDINATES_ITEM>
> <COORDINATES_ITEM>55</COORDINATES_ITEM>
> <COORDINATES_ITEM>98</COORDINATES_ITEM>
> !eleventh
> <COORDINATES_ITEM>25</COORDINATES_ITEM>
> <COORDINATES>
> </SHAPE>
>
> Can this be achieved with the use of one and only
> stylesheet??The output i
> want to generate
> should be identical with the source, except for that
> the selected
> COORDINATE_ITEM elements
> will also contain a character like d for example,
> concatenated with their
> number value.That
> last thing is very easy with the use of concat, but
> what about the previous
> issues.They look
> quite heavy programmaticaly for xslt. Should i use
> variables??
>
>
> output xml
>
>
> <SHAPE>
> <ELEM_INFO>
> <ELEM_INFO_ITEM>1</ELEM_INFO_ITEM>
> <ELEM_INFO_ITEM>1001</ELEM_INFO_ITEM>
> <ELEM_INFO_ITEM>5000</ELEM_INFO_ITEM>
>
> <ELEM_INFO_ITEM>7</ELEM_INFO_ITEM>
> <ELEM_INFO_ITEM>1002</ELEM_INFO_ITEM>
> <ELEM_INFO_ITEM>5000</ELEM_INFO_ITEM>
>
> <ELEM_INFO_ITEM>11</ELEM_INFO_ITEM>
> <ELEM_INFO_ITEM>1003</ELEM_INFO_ITEM>
> <ELEM_INFO_ITEM>5000</ELEM_INFO_ITEM>
> </ELEM_INFO>
> <COORDINATES>
> <COORDINATES_ITEM>d68</COORDINATES_ITEM> !first
> <COORDINATES_ITEM>54</COORDINATES_ITEM>
> <COORDINATES_ITEM>72/COORDINATES_ITEM>
> <COORDINATES_ITEM>65</COORDINATES_ITEM>
> <COORDINATES_ITEM>83</COORDINATES_ITEM>
> <COORDINATES_ITEM>17</COORDINATES_ITEM>
> <COORDINATES_ITEM>d20</COORDINATES_ITEM>
> !seventh
> <COORDINATES_ITEM>60</COORDINATES_ITEM>
> <COORDINATES_ITEM>24</COORDINATES_ITEM>
> <COORDINATES_ITEM>55</COORDINATES_ITEM>
> <COORDINATES_ITEM>d98</COORDINATES_ITEM>
> !eleventh
> <COORDINATES_ITEM>25</COORDINATES_ITEM>
> <COORDINATES>
> </SHAPE>
>
>
> Regards
> Manousos
> Athens
__________________________________
Do you Yahoo!?
Yahoo! Mail Address AutoComplete - You start. We finish.
http://promotions.yahoo.com/new_mail
|
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








