[Home] [By Thread] [By Date] [Recent Entries]

  • From: "Wang, Dapeng" <Dapeng.Wang@D...>
  • To: "Xml-Dev (E-Mail)" <xml-dev@i...>
  • Date: Fri, 20 Aug 1999 12:27:10 +0200

Hi,

I have a question about XSL. I want to apply different alignments to the TD
element depending on the value of the TH. The document looks like
<TABLE>
<TR>
<TH><TEXT>Name</TEXT></TH>
<TH><TEXT>Age</TEXT></TH>
<TH><TEXT>Gender</TEXT></TH>
</TR>
<TR>
<TD><TEXT>Tom</TEXT></TD>
<TD><TEXT>22</TEXT></TD>
<TD><TEXT>Male</TEXT></TD>
</TABLE>

For example I want add ALIGN="RIGHT" attribute to the TD-Elements in the
Age-column. So I definied XSL-rule like this.

  <xsl:template match="TD">  
	<xsl:choose>
	<xsl:when
test="normalize(ancestor::TABLE//TH[position()]/TEXT)=Age'">	
	  <TD ALIGN="RIGHT">
	</xsl:when>	
	<xsl:otherwise>		
	  <TD>
	</xsl:otherwise>
	<xsl:value-of select="./TEXT"/>
	</xsl:choose>
  </xsl:template>

It doesn't work. So I tried to produce some output justbefore yxsl:choose>
with the line

<xsl:value-of select="concat(position(),
normalize(ancestor::TABLE//TH[position()]/TEXT))"/>

And the output is 

1Name
2Name
3Name

It seems that the position() function in the [] is not evaluated everytime.
It always get the value 1. 

Any idea?

Thanks.
Dapeng Wang

xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev@i...
Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/ and on CD-ROM/ISBN 981-02-3594-1
To (un)subscribe, mailto:majordomo@i... the following message;
(un)subscribe xml-dev
To subscribe to the digests, mailto:majordomo@i... the following message;
subscribe xml-dev-digest
List coordinator, Henry Rzepa (mailto:rzepa@i...)



Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member