Subject: Re: [xsl] Identifying unique attribute values in nested sibling elements From: "G. Ken Holman" <gkholman@xxxxxxxxxxxxxxxxxxxx> Date: Thu, 29 Sep 2011 14:52:11 -0400 |
...
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?
~/t/ftemp $ xslt2 mark.xml mark.xsl <?xml version="1.0" encoding="UTF-8"?><html> <head>Mark's test</head> <body> <a href="../aval/14.htm">14kc</a> <a href="../aval/18.htm">18kc</a> <a href="../aval/18.htm">18kc</a> <a href="../aval/0.htm">0kc</a> </body> </html>~/t/ftemp $ cat mark.xsl <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:m="urn:X-Mark" exclude-result-prefixes="m" version="2.0"> <xsl:output method="xhtml"/>
<!--compose a string of attribute names and their values; avoid the possibility of co-incidental string values;--> <xsl:function name="m:attrs"> <xsl:param name="this"/> <xsl:value-of> <xsl:for-each select="$this/@*"> <xsl:sort select="name(.)"/> <xsl:value-of select="name(.),'',.,''"/> </xsl:for-each> </xsl:value-of> </xsl:function>
<!--common reporting--> <xsl:function name="m:report"> <xsl:param name="Stamp"/> <xsl:for-each select="$Stamp"> <xsl:for-each select="Value/@kc-value"> <a href="../aval/{.}.htm"> <xsl:value-of select="."/>kc<xsl:text/> </a> </xsl:for-each> </xsl:for-each> </xsl:function>
<xsl:template match="/"> <html> <head>Mark's test</head> <body> <xsl:for-each-group select="Stamp[Formats/@se-tenant=1]" group-by="m:attrs(Value)"> <xsl:copy-of select="m:report(.)"/> </xsl:for-each-group> </body> </html> </xsl:template>
</xsl:stylesheet> ~/t/ftemp $ cat mark.xml <?xml version="1.0" encoding="UTF-8"?> <Set> <!--possibly other unrelated <Stamp> elements here--> <Stamp> <CatNumbers pofis-number="1"/> <Value kc-value="14"/> <Formats se-tenant="1"/> </Stamp> <!--possibly other unrelated <Stamp> elements here--> <Stamp> <CatNumbers pofis-number="2"/> <Value kc-value="18"/> <Formats se-tenant="1"/> </Stamp> ..... <!--possibly other unrelated stamp elements--> <Stamp> <CatNumbers pofis-number="3"/> <Value kc-value="18" h-value="50"/> <Formats se-tenant="1"/> </Stamp> <!--possibly other unrelated <Stamp> elements here--> <Stamp> <CatNumbers pofis-number="4"/> <Value kc-value="14" /> <Formats se-tenant="1"/> </Stamp> <!--possibly other unrelated <Stamp> elements here--> <Stamp> <CatNumbers pofis-number="5"/> <Value kc-value="0" l-value="A" /> <Formats se-tenant="1"/> </Stamp> </Set> ~/t/ftemp $
-- Contact us for world-wide XML consulting and instructor-led training Crane Softwrights Ltd. http://www.CraneSoftwrights.com/s/ G. Ken Holman mailto:gkholman@xxxxxxxxxxxxxxxxxxxx Google+ profile: https://plus.google.com/116832879756988317389/about Legal business disclaimers: http://www.CraneSoftwrights.com/legal
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Identifying unique attrib, Mark | Thread | Re: [xsl] Identifying unique attrib, Mark |
Re: [xsl] Identifying unique attrib, Mark | Date | Re: [xsl] change xslt processing or, Navin Patel |
Month |