xsl-list
[Top] [All Lists]

[xsl] Sorting using more than value

2010-11-11 14:46:19
I am having problems in sorting using one of two possible values.I have a 
template that creates an index using the indexterm element. 

Here is a snippet of XML:

<p>Here is an <indexterm>index entry</indexterm> without an attribute, and the 
contents of the element will display in the index. This <indexterm 
term.entry="Alternate text">index entry</indexterm> does have an attribute, and 
the contents of the attribute will display in the index rather than the content 
of the indexterm element. </p>

I need to be able to sort the index using one of two possible values. If the 
indexterm doesn't contain a term.entry attribute, it should sort using the 
content of the indexterm element. If the indexterm element contains a 
term.entry 
attribute, then it should sort using the value of the term.entry attribute.
I have the following that sorts the index. The template outputs the value of 
the 
term.entry attribute if present, but it sorts only using the content of the 
indexterm element:

   <xsl:for-each-group select="//indexterm"  group-by="."> 
    <xsl:sort 
select="translate(text(),'abcdefghijklmnopqrstuvwxyz','ABCDEFGHIJKLMNOPQRSTUVWXYZ')"/>

  
    <div class="index">  
    <xsl:choose>
    <xsl:when test="@term.entry"><span><xsl:value-of 
select="@term.entry"/><xsl:text> - </xsl:text></span></xsl:when> 

    <xsl:otherwise><span><xsl:value-of select="."/><xsl:text> - 
</xsl:text></span></xsl:otherwise>
         </xsl:choose>    
        </div> 
</xsl:for-each-group>

How would I be able to sort the index entries using the content of the 
indexterm 
element (when there is no term.entry element) or the term.entry attribute for 
the indexterm element (if present)?

Thanks for any assistance with this.
Susan




--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--

<Prev in Thread] Current Thread [Next in Thread>