Re: [docbook-apps] Aligning numbers in table cells with xsl

From
Bob Stayton <>
Date
2012-05-25T19:59:44+00:00
ID
1b5d01cd3ab0$ed0b5390$6600a8c0@pazu
Thread
Re: [docbook-apps] Aligning numbers in table cells with xsl
One way to handle those characters is to use the 
translate() function to remove them before doing the test.  If the third 
argument of translate() is empty, then the matching characters in the second 
argument disappear, and all other characters are left untouched.  Something 
like:

 

string(number(translate(., '&lt;&gt;', 
'')))

 

 

Bob Stayton
Sagehill Enterprises


 

 

  
----- Original Message ----- 

  
From: 
  Xmplar 

  
To: Bob Stayton 

  
Cc: DocBook Apps 

  
Sent: Thursday, May 24, 2012 7:38 
PM

  
Subject: Re: [docbook-apps] Aligning 
  numbers in table cells with xsl

  

I managed to (almost) fix the problem by adding a test for NaN 
  to the string variable:

<xsl:if 
  test="(ancestor-or-self::d:table/@tabstyle = 'numbers' or 
  
      ancestor-or-self::d:table/@tabstyle = 
  'numberstripe') and not(ancestor::d:thead or
      
  ancestor::d:tfoot) and preceding-sibling::d:entry and (string(number(.) != 
  'NaN'))">

This however will not select any cells that have a number 
  and a non-numeric string (such as greater than or less than signs: 
  <1, or >20) - my test treats those cells as a string and not as a 
  number. I now need to find how to convert &lt; and &gt; to a number so 
  that the test selects cells with a number and a lt or gt sign.

On 
  24-05-12 4:24 PM, Bob Stayton wrote: 
  <xsl:if test="(ancestor-or-self::d:table/@tabstyle = 
    'numbers' or 
      
    ancestor-or-self::d:table/@tabstyle = 'numberstripe') and 
    not(ancestor::d:thead or
      
    ancestor::d:tfoot) and preceding-sibling::d:entry and 
  string(number(.))">

  
-- 
Dave Gardiner
Xmplar

http://xmplar.biz
Mob. 0416 833 
993