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