Re: [xsl] Can I use <xsl:key>

Subject: Re: [xsl] Can I use <xsl:key>
From: aaron apigo <aaronjose_apigo2001@xxxxxxxxx>
Date: Tue, 6 Sep 2005 23:32:39 -0700 (PDT)
Hi Ragulf,
   Thanks for your response. I see your point, I'm a
beginner in XSLT programming, that's why sometimes I
rely on this forum in search for my problem. I've
tried different simple XML structure, and I transform
it with want I want, but the XML that I posted really
bothered me, I know that for some, it only simple, but
as a newbie, its hard for me to transform that.

Here is my initial XSL, 

<xsl:template match="root">
        <xsl:element name="ce:author-group">          
 
            <xsl:for-each
select="text:p/text:span/text:user-field-get[@text:name='ce:author']"
>
                <xsl:element name="{@text:name}">     
                       
                                            
                        <xsl:call-template
name="author_given_name">
                            <xsl:with-param
name="authorCTR" select="position()"></xsl:with-param>
                                      
                        </xsl:call-template>          
              
                        
                        <xsl:call-template
name="author_surname">
                            <xsl:with-param
name="authorCTR" select="position()"></xsl:with-param>
                                      
                        </xsl:call-template>          
              
                        
                    <xsl:call-template
name="author_email_start">
                            <xsl:with-param
name="authorCTR" select="position()"></xsl:with-param>
                                      
                    </xsl:call-template>
                    
                        <xsl:call-template
name="author_email_end">
                            <xsl:with-param
name="authorCTR" select="position()"></xsl:with-param>
                                      
                        </xsl:call-template>          
               

                </xsl:element>
            </xsl:for-each>
        </xsl:element>                    
        
    </xsl:template>
    
    <!-- Author Given Name template -->
    <xsl:template
match="//text:user-field-get[@text:name='ce:given-name']"
 name="author_given_name">
        <xsl:param name="authorCTR"/>        
        <xsl:for-each
select="//text:user-field-get[@text:name='ce:given-name']">
       
            <xsl:if test="$authorCTR=position()">
                <xsl:element name="{@text:name}">
                    <xsl:value-of
select="./following::text:span/text()"/>
                    <xsl:value-of
select="parent::text:span/following::text()"/>        
           
                </xsl:element>                        
  
            </xsl:if>    
        </xsl:for-each>
    </xsl:template>                  
    
    <!-- Author Surname template -->    
    <xsl:template
match="//text:user-field-get[@text:name='ce:surname']"
 name="author_surname">
        <xsl:param name="authorCTR"/>        
        <xsl:for-each
select="//text:user-field-get[@text:name='ce:surname']">
       
            <xsl:if test="$authorCTR=position()">
                <xsl:element name="{@text:name}">
                    <xsl:value-of
select="./following::text:span/text()"/>              
     
                    <xsl:value-of
select="parent::text:span/following::text()"/>        
           
                </xsl:element>                        
  
            </xsl:if>    
        </xsl:for-each>
    </xsl:template>                  
    
    <!--Process   ce:email -->
    <xsl:template
match="//text:user-field-get[@text:name='ce:e-address']
|
//text:span/text:user-field-get[@text:name='ce:e-address']"
 name="author_email_start">
        <xsl:param name="authorCTR"/>
        <xsl:for-each
select="//text:user-field-get[@text:name='ce:e-address']
|
//text:span/text:user-field-get[@text:name='ce:e-address']">
       
            <xsl:if test="$authorCTR=position()">
                <xsl:text
disable-output-escaping="yes">&#x003C;ce:e-address&#x003E;</xsl:text>
           
                <xsl:value-of
select="./following::text:span/text()"/>              
     
                <xsl:value-of
select="parent::text:span/following::text()"/>        
           
            </xsl:if>    
        </xsl:for-each>
    </xsl:template>                  
    
    <xsl:template
match="//text:user-field-get[@text:name='/ce:e-address']
|
//text:span/text:user-field-get[@text:name='/ce:e-address']"
 name="author_email_end">
        <xsl:param name="authorCTR"/>
        <xsl:for-each
select="//text:user-field-get[@text:name='/ce:e-address']
|
//text:span/text:user-field-get[@text:name='/ce:e-address']">
       
            <xsl:if test="$authorCTR=position()">    
                <xsl:text
disable-output-escaping="yes">&#x003C;/ce:e-address&#x003E;</xsl:text>
               
            </xsl:if>
        </xsl:for-each>
    </xsl:template>    


well, hope you understand, my problem is, the e-mail
add were not in the place that was supposed to be.
Can you give me some thoughts about this.

regards.
aaron




	
		
______________________________________________________
Click here to donate to the Hurricane Katrina relief effort.
http://store.yahoo.com/redcross-donate3/

Current Thread