xsl-list
[Top] [All Lists]

Re: [xsl] rather tricky numbering problem

2010-06-21 13:28:26
Looks like a fairly simple grouping problem, combined with handling multiple input and output files.

<xsl:for-each-group select="collection('folder')" group-by="/*/product-num/substring(., 1, 5)">
<xsl:choose>
<xsl:when test="count(current-group() gt 1)">
<xsl:for-each select="current-group()">
<xsl:apply-templates select=".">
<xsl:with-param name="new-prod-num" select="concat(current-grouping-key(), position()"/>
</xsl:apply-templates>
</xsl:for-each>
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates select=".">
<xsl:with-param name="new-prod-num" select="current-grouping-key()"/>
</xsl:apply-templates>
</
</
</

Michael Kay
Saxonica

On 21/06/2010 18:31, a kusa wrote:
Hello

I have a requirement which  I am not sure if this can be done in XSLT.
I will try to explain it  theoretically as much as possible and please
let me know if there is any way this can be done in XSLT.

I have a bunch of XML files in a folder.

The XML files have an element called 'prod-num' which is an 8-digit
number the first 5 of which follows a particular numbering scheme
based on what the XML is for.

For example, if the XML represents books for children,  the prod-num
has the following numbering scheme : 1212 - 1.
If the XML data represents books for Science, the prod-num has the
following numbering scheme: 1212-2

Now, here is what needs to happen.

The last three of the prod-num needs to be sequentially numbered if
the first 5 are the same.

So, in my explained example above, the transformation needs to read
the folder with the XML files, and read through the prod-num values.

If there are say two XML files with 1212-1, then the first one needs
to be updated with 1212-1001, the second one becomes 1212-1002.

Can the experts please give me some tips and ideas to resolve this?

Thanks in advance

--~------------------------------------------------------------------
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>
--~--




--~------------------------------------------------------------------
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>
--~--

<Prev in Thread] Current Thread [Next in Thread>