назначением.
<?xml version='1.0'?>
<xsl:stylesheet version='1.0'
xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>
<xsl:template match='/PLANETS'>
<HTML>
<HEAD>
<TITLE>
The Planets Table
</TITLE>
</HEAD>
<BODY>
<H1>
The Planets Table
</H1>
<xsl:for-each select='PLANET'>
<H2><A HREF='#{geherate-id()}' >
<xsl:value-of select='NAME'/>
</A></H2>
<P/>
</xsl:for-each>
<TABLE BORDER='2'>
<TR>
<TD>Name</TD>
<TD>Mass</TD>
<TD>Radius</TD>
<TD>Day</TD>
</TR>
<xsl:apply-templates/>
</TABLE>
</BODY>
</HTML>
</xsl:template>
<xsl:template match='PLANET'>
<TR>
<TD><A NAME='{generate-id(.)}'>
<xsl:value-of select='NAME'/>
</A></TD>
<TD><xsl:apply-templates select='MASS'/></TD>
<TD><xsl:apply-templates select='RADIUS'/></TD>
<TD><xsl:apply-templates select='DAY'/></TD>
</TR>
</xsl:template>
<xsl:template match='MASS'>
<xsl:value-of select='.'/>
<xsl:text> </xsl:text>
<xsl:value-of select='@UNITS'/>
</xsl:template>
<xsl:template match='RADIUS'>
<xsl:value-of select='.'/>
<xsl:text> </xsl:text>
<xsl:value-of select='@UNITS'/>
</xsl:template>
<xsl:template match='DAY'>
<xsl:value-of select='.'/>
<xsl:text> </xsl:text>
<xsl:value-of select='@UNITS'/>
</xsl:template>
</xsl:stylesheet>
Вот как это делается: сейчас я создал гиперссылки с атрибутом HREF, значение которого равно идентификатору элемента <PLANET>
; при помощи этого же идентификатора я сделал каждый элемент <PLANET>
назначением гиперссылки. Когда пользователь щелкает на гиперссылку в оглавлении, браузер прокручивает данные до соответствующей записи планеты в HTML- таблице. (Заметьте, что для того чтобы большинство браузеров осуществляли прокрутку, HTML-таблица должна быть вне пределов экрана.) Каждый процессор XSLT создает свои собственные идентификаторы; ниже приведен результат для процессора Xalan:
<HTML>
<HEAD>
<TITLE>
The Planets Table
</TITLE>
</HEAD>
<BODY>
<H1>
The Planets Table
</H1>
<H2>
<A href='#N5'>Mercury</A>
</H2>
<Р></Р>
<Н2>
<A href='#N20'>Venus</A>
</H2>
<P></P>
<H2>
<A href='#N3B'>Earth</A>
</H2>
<Р></Р>
<TABLE BORDER='2'>
<TR>
<TD>Name</TD>
<TD>Mass</TD>
<TD>Radius</TD>
<TD>Day</TD>