HI

I'm not an expert in Xsl either,
but maybe this kind of thing is a lot easier in .Net itself

here's a tip on calling .NEt code from xsl, maybe that can help you out
http://bloggingabout.net/blogs/pascal/archive/2005/04/21/3658.aspx


with kind regards
Ruben Willems


On Wed, Feb 4, 2009 at 2:27 PM, CinnamonDonkey <
[email protected]> wrote:

>
> Hi All,
>
> I've been trying to solve this problem for a while now and just can't
> get my head around this weird XSL business (Who comes up with a
> language that only allows you to assign to a variable once?).
>
> Given XML looking something like:
>
> <Modifications>
>   <Modification>
>      <changeNumber>123<changeNumber>
>      <comment>changes for 123<comment>
>      <file>file1.cpp</file>
>   </Modification>
>   <Modification>
>      <changeNumber>123<changeNumber>
>      <comment>changes for 123<comment>
>      <file>file2.cpp</file>
>   </Modification>
>   <Modification>
>      <changeNumber>124<changeNumber>
>      <comment>changes for 124<comment>
>      <file>file1.cpp</file>
>   </Modification>
>   <Modification>
>      <changeNumber>125<changeNumber>
>      <comment>changes for 125<comment>
>      <file>file1.cpp</file>
>   </Modification>
>   <Modification>
>      <changeNumber>125<changeNumber>
>      <comment>changes for 125<comment>
>      <file>file2.cpp</file>
>   </Modification>
> <Modifications>
>
> I want to see a table looking like:
>
>   123   changes for 123
>   124   changes for 123
>   125   changes for 125
>
> and not:
>
>   123   changes for 123
>   123   changes for 123
>   124   changes for 123
>   125   changes for 125
>   125   changes for 125
>
>
> That is; I what to not render a row if the change number for the
> current row being rendered is the same as that of the preceeding row.
>
> The closest I have come in my solution so far is:
>
>
> <xsl:for-each select="//modification">
>   <xsl:sort select="changeNumber" order="descending" data-
> type="text" />
>   <xsl:if test="(position() = 1) or (changeNumber != preceding-
> sibling::modification[1]/changeNumber)">
>      <tr>
>         <td class="table-text" valign="top"> <xsl:value-of
> select="changeNumber"/> </td>
>         <td class="table-text" valign="top"> <xsl:value-of
> select="comment"/
> > </td>
>      </tr>
>   </xsl:if>
> </xsl:for-each>
>
> But this seems to skip entries when I have long lists of
> modifications.
>
> So the challenge is layed down! Come on clever cloggs!
>
> Please help,
> Shaun
>
>

Reply via email to