Hi Ken and Martin,
Apparently in my attempt to simplify this problem when I asked for help
earlier, I did not do what Einstein recommended: "Make everything just
simple enough, but not too simple." However, I was able to adapt Martin's
code to acquire the information I needed, but now could use a bit more help
parsing it. This time, I'll give you all the facts.
In my modification, I write to the variable "$value" that contains all of
the values related to the sequence of se-tenant <Values> currently of
interest. My problem now is that I do not know how to use tokenize() or
write regex expressions, if that is the correct method, so that I can output
the needed XHTML.
My modification of Martin's code:
<xsl:variable name="values">
<xsl:for-each-group select="../Stamp" group-by="Formats/@se-tenant">
<xsl:for-each-group select="current-group()"
group-by="string-join(Value/@*, '.')">
<xsl:value-of select="current-grouping-key()"/>
<xsl:value-of select="Value/@*/concat('=',
local-name(), ';')"/>
</xsl:for-each-group>
</xsl:for-each-group>
</xsl:variable>
The variable will contain strings similar to this one that I actually
extracted from the working code:
"3.60=kc-value; =h-value;5=kc-value;6=kc-value;8=kc-value;"
This string is exactly what I wanted earlier and was unable to describe
acurately.
My problem: I now need to tokenize these strings (or break them into usable
substrings) so that I can produce the output XHTML . I only need to pay
attention to the digits on the left of '=' and the unit-name (kc-value,
h-value) on its right. The substring (token) separator is ';'
"3.60=kc-value;" is transformed to: <a "href="../aval/3-60.htm">3.60kc</a>
" =h-value;" has no digits in front of the '=' and thus must be ignored
(the needed information was actually absorbed by the previous token)
"5=kc-value;" is transformed to: <a href="../aval/5.htm">5kc</a>
"6=kc-value;" is transformed to: <a href="../aval/6.htm">6kc</a>
"8=kc-value;" is transformed to: <a href="../aval/8.htm">8kc</a>
Can you show me how to do this?
Thanks,
Mark
-----Original Message-----
From: Martin Honnen
Sent: Thursday, September 29, 2011 6:00 AM
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: Re: [xsl] Identifying unique attribute values in nested sibling
elements
Mark wrote:
Also, in your statement: <xsl:for-each-group select="current-group()"
select="string-join(Value/@*, '|'">, I assumed the second "select" was a
typo for "group-by". Is that assumption correct?
Yes, sorry about that mistake.
The string-join assembles the values of all attributes into one string
to have some key value for grouping the items.
--
Martin Honnen --- MVP Data Platform Development
http://msmvps.com/blogs/martin_honnen/
--~------------------------------------------------------------------
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>
--~--