Subject: [xsl] Re: Can this be written in a shorter form? From: "Dimitre Novatchev" <dnovatchev@xxxxxxxxx> Date: Wed, 7 Jan 2004 22:58:28 +0100 |
> > This is part of a <xls:choose> test > > > > <xsl:when test="$node_detlijn[$node_position]/@type = 'text' or > > $node_detlijn[$node_position]/@type = 'style'"> > > > > <xsl:when test="$node_detlijn[$node_position]/@type[. = 'text' or . = 'style']" /> > > should do the trick. Yes. When there are much more than two choices (or unknown number) it would be preferrable to have them specified separately (as the text descendents of a global-scope element in the stylesheet or in an imported stylesheet). Then the comparison will be: <xsl:when test="$node_detlijn[$node_position]/@type = $choices /> where the "$choices" xsl:variable is defined in the following way: <xsl:variable name="choices" select="document('')/*/myChoices::*[1]/*"/> and we have declared a specific namespace and bound the "myChoices" prefix to it and we have the following global-scope element: <myChoices:group1> <choice>text</choice> <choice>style</choice> . . . . . . . . . . . <choice>last</choice> </myChoices:group1> For efficiency we could put the choices in a separate tree and define a key: <xsl:key name="kChoices" match="choice" use="."/> Then the test (with the choices tree as the current document ) will simply be: <xsl:when test="key('kChoices', $node_detlijn[$node_position]/@type)"/> Dimitre Novatchev. FXSL developer http://fxsl.sourceforge.net/ -- the home of FXSL Resume: http://fxsl.sf.net/DNovatchev/Resume/Res.html XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] Can this be written in a , Lars Huttar | Thread | RE: [xsl] Can this be written in a , Ragulf Pickaxe |
[xsl] How to assign a nodelist to a, Jaime A Stuardo Baha | Date | [xsl] Special characters in xml, Archana Rao |
Month |