RE: Profiling Number Ranges
You'll have to tokenize the attribute value (using the tokenize() function in XPath 2.0, or the EXSLT str:tokenize() extension, or your own recursive template) and then do the comparison on each of the values in turn. If the values are decimal numbers, as in your example, you can use numeric comparison, but if they are sequences of integers (so that 6.2.1 < 6.12) then you'll need to do a further level of tokenization to extract the integers. Note that these problems become vastly easier in 2.0. Michael Kay http://www.saxonica.com/ > -----Original Message----- > From: Naomi Gronson [mailto:naomi_gronson@xxxxxxxxx] > Sent: 18 November 2004 14:59 > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > Subject: Profiling Number Ranges > > I have a profiling filter that removes certain > elements prior to publish. I've been enabling the > content owners to apply multiple attribute values to > content within Epic Editor. For most information this > is relatively straightforward, the problem comes in > with SystemLevel: > > <para SystemLevel="5.1;5.2;6.0">Now reboot.</para> > <para SystemLevel="5.0;5.5;9.2">Log out and go eat a > snack.</para> > > I've allowed users to make selections in the filter > such as "5.1" (using contains()) but the trouble is > when I try to implement the range feature to give the > user a greater than/less than like "5.1+" > > $SystemLevel = "5.1+" > > <!-- This code worked when only one SystemLevel > attribute value was allowed --> > <xsl:when test="contains($SystemLevel, '+') and > @SystemLevel and (not(@SystemLevel >= > translate($SystemLevel, '+', '')))"> > <xsl:message>Process: Suppressing <xsl:value-of > select="name()"/> with SystemLevel = <xsl:value-of > select="@SystemLevel"/> and Profile of <xsl:value-of > select="$SystemLevel"/>.</xsl:message> > <xsl:apply-templates mode="suppress"/> > </xsl:when> > > You can probably see the the dilemma now. Does anyone > know an approach that could be used to somehow take a > list of a few attribute values ("5.1;5.2;6.0") and use > the >= greater than symbol to suppress content in > which none of the values match the greater than > criteria? Would the values need to be parsed in order > to do this, etc.? Thanks for the help. > > Naomi > > > > __________________________________ > Do you Yahoo!? > The all-new My Yahoo! - Get yours free! > http://my.yahoo.com
PURCHASE STYLUS STUDIO ONLINE TODAY!
Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!
Download The World's Best XML IDE!
Accelerate XML development with our award-winning XML IDE - Download a free trial today!
Subscribe in XML format