<xsl:if test="$i < $n">
<option>
<xsl:value-of select="$i"/>
</option>
<xsl:call-template name="for">
<xsl:with-param name="i" select="$i + 1"/>
<xsl:with-param name="n" select="$n"/>
</xsl:call-template>
</xsl:if>
</xsl:template>
</xsl:stylesheet>
ΠΠΈΡΡΠΈΠ½Π³ 11.15 ΠΡΡ ΠΎΠ΄ΡΡΠΈΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ<option>0</option>
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
<option>6</option>
<option>7</option>
<option>8</option>
<option>9</option>
ΠΠΎΠΆΠ°Π»ΡΠΉ, ΡΡΠΈΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠΌ ΠΌΡ ΠΈ Π·Π°ΠΊΠΎΠ½ΡΠΈΠΌ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΡΠΈΠΈ. ΠΡΡΠ°Π»ΠΎΡΡ Π»ΠΈΡΡ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ, ΡΡΠΎ ΠΏΡΠΈ Π²ΡΠ΅ΠΉ ΡΠ²ΠΎΠ΅ΠΉ ΠΏΡΠΎΡΡΠΎΡΠ΅ ΠΈ Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΌΠΎΡΠΈ, ΡΠ΅ΠΊΡΡΡΠΈΡ ΡΠ²Π»ΡΠ΅ΡΡΡ Π³ΠΎΡΠ°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ ΡΡΠ΅Π±ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΊ ΡΠ΅ΡΡΡΡΠ°ΠΌ ΡΠ΅Ρ Π½ΠΈΠΊΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΡΠ΅ΠΌ ΠΎΠ±ΡΡΠ½Π°Ρ ΠΈΡΠ΅ΡΠ°ΡΠΈΠ²Π½Π°Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ°. ΠΠΎΡΡΠΎΠΌΡ Π²ΡΠ΅Π³Π΄Π° ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΡΠ°ΡΠ΅Π»ΡΠ½ΠΎ ΠΎΡΠ΅Π½ΠΈΠ²Π°ΡΡ, Π²ΠΎ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ»ΠΈΡΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΡΠΈΠΈ. Π Π»ΡΠ±ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΠ·Π±Π΅Π³Π°ΡΡ Π³Π»ΡΠ±ΠΎΠΊΠΈΡ ΡΠ΅ΠΊΡΡΡΠΈΠΉ (ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΡΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ² Π² ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π±ΠΎΠ»ΡΡΠΈΠΌ) ΠΈ ΡΠ΅ΠΊΡΡΡΠΈΠΉ, Π½Π΅ΡΠΊΠΎΠ½ΠΎΠΌΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΡ ΠΏΠ°ΠΌΡΡΡ.
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ, Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΡΠΎΡΡΡ Π² XSLT Π·Π°ΡΡΡΠ΄Π½Π΅Π½ΠΎ, Π² ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ·ΡΠΊΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Π»Π΅Π³ΡΠ΅ ΠΈ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½Π΅ΠΉ. ΠΠΎΡΡΠΎΠΌΡ, ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° ΡΡΠΎΠΈΡ Π²ΠΎΠΏΡΠΎΡ ΠΎΠ± ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΠ΅ΠΊΡΡΡΠΈΠΈ, Π½Π°ΡΡΠ΄Ρ Ρ Π½Π΅ΠΉ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ ΡΠ°ΠΊΡΡ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Ρ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠΉ XSLT, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΡ Π½Π° ΠΎΠ±ΡΡΠ½ΠΎΠΌ ΠΈΠΌΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΌ ΡΠ·ΡΠΊΠ΅.
ΠΠ΅ΡΠΎΠ΄ ΠΠΈΠ·Π° Π΄Π»Ρ for-ΡΠΈΠΊΠ»Π°
ΠΠ»Ρ ΠΏΡΠΎΡΡΡΡ for-ΡΠΈΠΊΠ»ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡΡΡ ΡΡΡΠΎΠ³ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ ΡΠ°Π·, Π²ΠΌΠ΅ΡΡΠΎ ΡΠ΅ΠΊΡΡΡΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²Π΅ΡΡΠΌΠ° ΠΎΡΡΡΠΎΡΠΌΠ½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄, ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Π½ΡΠΉ ΠΠ΅Π½Π΄Π΅Π»Π»ΠΎΠΌ ΠΠΈΠ·ΠΎΠΌ (Wendell Piez, Mullberry Technologies, Inc). Π‘ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π° ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Ρ ΠΎΡΡ ΠΌΡ ΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠ·Π»ΠΎΠ², Π²ΡΠ±ΡΠ°ΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ ΡΠ·Π»ΠΎΠ² Π½Π°ΠΌ Π²ΠΏΠΎΠ»Π½Π΅ ΠΏΠΎ ΡΠΈΠ»Π°ΠΌ.
ΠΠ»Ρ Π½Π°ΡΠ°Π»Π° Π²ΡΠ±Π΅ΡΠ΅ΠΌ ΠΊΠ°ΠΊΠΎΠ΅-Π½ΠΈΠ±ΡΠ΄Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠ·Π»ΠΎΠ² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ° ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ:
<xsl:variable name="set" select="document('')//node()"/>
ΠΠ°ΡΠ΅ΠΌ Π΄Π»Ρ ΠΏΠΎΠ²ΡΠΎΡΠ΅Π½ΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π· ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ Π²ΠΈΠ΄Π°
<xsl:for-each select="$set[position() <= $number]">
<!-- ΠΠ΅ΠΉΡΡΠ²ΠΈΡ -->
</xsl:for-each>
Π³Π΄Π΅ number ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΡΠ΅Π±ΡΠ΅ΠΌΠΎΠ΅ ΡΠΈΡΠ»ΠΎ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΉ.
ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΌΠ΅ΡΠΎΠ΄Π° ΠΠΈΠ·Π° ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΡΠΈΡΡΠ²Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ.
β‘ ΠΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠ·Π»ΠΎΠ² set Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΡΠ»ΠΈΡΠΊΠΎΠΌ Π±ΠΎΠ»ΡΡΠΈΠΌ β ΠΈΠ½Π°ΡΠ΅ Π΅Π³ΠΎ Π²ΡΠ±ΠΎΡ Π±ΡΠ΄Π΅Ρ Π½Π΅ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΌ.
β‘ ΠΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠ·Π»ΠΎΠ² set ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΡΠΈΡΠ»ΠΎ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΉ (number) ΡΠ·Π»ΠΎΠ².
Π ΡΠ΅Π»ΠΎΠΌ ΠΆΠ΅ ΠΌΠ΅ΡΠΎΠ΄ ΠΠΈΠ·Π° β ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² Π½Π΅ ΠΏΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ.
ΠΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π½Π°Π΄ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π°ΠΌΠΈ
Π Π°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Ρ ΡΠ°ΠΊΠΎΠΉ ΡΠΈΠΏ Π΄Π°Π½Π½ΡΡ , ΠΊΠ°ΠΊ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° ΡΠ·Π»ΠΎΠ², ΠΌΡ ΠΎΡΠΌΠ΅ΡΠ°Π»ΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΠΎΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Ρ Π½ΠΈΠΌΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡ. Π ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, XSLT Π½Π΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ² Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ½ΠΎΡΡΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° Π΄ΡΡΠ³ΠΎΠΌΡ, Π½Π°Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΡΠ΅ΡΠ΅Π½ΠΈΠΉ, ΡΠ°Π·Π½ΠΎΡΡΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ² ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ»ΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Ρ ΠΏΡΠΈ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠΈ ΡΡΠΎΠ³ΠΎ ΡΠΈΠΏΠ° Π΄Π°Π½Π½ΡΡ , ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΠ΅ Π½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° ΡΠ°Π²Π΅Π½ΡΡΠ²Π°, Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡ Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π½Π°Π΄ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π°ΠΌΠΈ.
Π ΡΡΠΎΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΈΠ½ΠΎΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΊ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Π½Π°Π΄ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π°ΠΌΠΈ, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΠΉ Π½Π° ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΠΎΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ½ΠΎΡΡΠΈ ΡΠ·Π»Π° ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Ρ. Π£Π·Π΅Π» node ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Ρ nodeset ΡΠΎΠ³Π΄Π° ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΡΠ°Π²Π΅Π½ΡΡΠ²ΠΎ
count($nodeset) = count($node | $nodeset)
Π£ΡΠΈΡΡΠ²Π°Ρ ΡΡΠΎ ΠΎΠ±ΡΡΠΎΡΡΠ΅Π»ΡΡΡΠ²ΠΎ, ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π½Π°Π΄ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π°ΠΌΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΡ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΡΠ°Π±Π». 11.1. Π Π΅Π·ΡΠ»ΡΡΠΈΡΡΡΡΠ΅Π΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π²ΡΠ΄Π΅Π»Π΅Π½ΠΎ ΡΡΡΠΈΡ ΠΎΠ²ΠΊΠΎΠΉ.
Π’Π°Π±Π»ΠΈΡΠ° 11.1. ΠΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π½Π°Π΄ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π°ΠΌΠΈ
ΠΠΏΠ΅ΡΠ°ΡΠΈΡ ΠΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ XPath-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ $A | $B ΠΠ΅ΡΠ΅ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ $Π[count(.|$B)=count($B)] Π Π°Π·Π½ΠΎΡΡΡ $A[count(.|$B)!=count($B)] Π‘ΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠ°Π·Π½ΠΎΡΡΡ $A[count(.|$B)!=count($B)] | $B[count(.|$A)!=count($A)]ΠΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠ΅ Π²ΡΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ Π±ΡΠ»ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Ρ ΠΠ°ΠΉΠΊΠ»ΠΎΠΌ ΠΠ΅Π΅ΠΌ (Michael Kay, Software AG), ΠΠ»ΠΈΠ²Π΅ΡΠΎΠΌ ΠΠ΅ΠΊΠΊΠ΅ΡΠΎΠΌ (Oliver Becker, Humboldt-Universitat zu Berlin), ΠΠ΅Π½ΠΎΠΌ Π₯ΠΎΠ»ΠΌΠ°Π½ΠΎΠΌ (Ken Holman, Crane Softwrights Ltd.) ΠΈ ΠΏΡΠ±Π»ΠΈΠΊΡΡΡΡΡ Ρ Π»ΡΠ±Π΅Π·Π½ΠΎΠ³ΠΎ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ Π°Π²ΡΠΎΡΠΎΠ².
ΠΠ΅ΡΠ΅Π½ΠΎΡ ΡΡΡΠΎΠΊ ΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ BR
ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Ρ ΡΠΈΡΠ°ΡΠ΅Π»Π΅ΠΉ, ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ, Ρ ΠΎΡΠΎΡΠΎ Π·Π½Π°ΠΊΠΎΠΌ ΡΠ°ΠΊΠΎΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΠ·ΡΠΊΠ° HTML, ΠΊΠ°ΠΊ BR, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ°Π·ΡΡΠ²Π° ΡΡΡΠΎΠΊΠΈ. Π ΠΎΠ±ΡΡΠ½ΡΡ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΡ ΡΠ°ΠΉΠ»Π°Ρ Π΄Π»Ρ ΡΠΎΠΉ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠΉ ΡΠ΅Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠΈΠΌΠ²ΠΎΠ»Ρ Ρ ΠΊΠΎΠ΄Π°ΠΌΠΈ #xA, #xD ΠΈΠ»ΠΈ ΠΈΡ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΈ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ. ΠΡΠΈ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Π½Π΅ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΡΠ° ΠΈ HTML ΡΠ°ΡΡΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ Π·Π°Π΄Π°ΡΠ° ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Π° ΡΡΡΠΎΠΊΠΈ Π² ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ BR ΠΈ Π½Π°ΠΎΠ±ΠΎΡΠΎΡ.
ΠΠ°ΠΌΠ΅Π½Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° BR Π½Π° ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ ΡΠ·Π΅Π», ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ ΡΡΡΠΎΠΊΠΈ, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΠΈΠ»Π»ΡΡΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΡΡΠΈΠ²ΠΈΠ°Π»ΡΠ½ΡΠΌ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠΌ.
ΠΠΈΡΡΠΈΠ½Π³ 11.16. Π¨Π°Π±Π»ΠΎΠ½ Π·Π°ΠΌΠ΅Π½Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² BR Π½Π° ΠΏΠ΅ΡΠ΅Π½ΠΎΡ ΡΡΡΠΎΠΊΠΈ<xsl:template match="BR">
<xsl:text>
</xsl:text>
</xsl:template>
ΠΠΎΡΠ°Π·Π΄ΠΎ ΡΠ»ΠΎΠΆΠ½Π΅Π΅ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΠ°Π±Π»ΠΎΠ½, Π΄Π΅Π»Π°ΡΡΠΈΠΉ ΠΎΠ±ΡΠ°ΡΠ½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ, β Π·Π°ΠΌΠ΅Π½Ρ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠ° ΡΡΡΠΎΠΊΠΈ Π½Π° ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ BR. Π XSLT Π½Π΅Ρ Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° Π΄Π»Ρ Π·Π°ΠΌΠ΅Π½Ρ ΠΏΠΎΠ΄ΡΡΡΠΎΠΊΠΈ Π² ΡΡΡΠΎΠΊΠ΅ (ΡΠ΅ΠΌ Π±ΠΎΠ»Π΅Π΅ Π½Π° ΡΠ»Π΅ΠΌΠ΅Π½Ρ), ΠΏΠΎΡΡΠΎΠΌΡ Π½Π°ΠΌ ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΡΠΎΠ·Π΄Π°ΡΡ Π΄Π»Ρ ΡΡΠΎΠΉ ΡΠ΅Π»ΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ ΡΠ°Π±Π»ΠΎΠ½.
ΠΠ»Ρ ΡΡΠΎΠΉ ΡΠ΅Π»ΠΈ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ substring-before ΠΈ substring-after. Π€ΡΠ½ΠΊΡΠΈΡ substring-before($str, $search-for) Π²ΠΎΠ·Π²ΡΠ°ΡΠΈΡ ΡΠ°ΡΡΡ ΡΡΡΠΎΠΊΠΈ str, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠ΅Π΄ΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΏΠ΅ΡΠ²ΠΎΠΌΡ Π²Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ Π² Π½Π΅Π΅ ΠΏΠΎΠ΄ΡΡΡΠΎΠΊΠΈ search-for, Π° ΡΡΠ½ΠΊΡΠΈΡ substring-after($str, $search-for) β ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΡΡ ΡΠ°ΡΡΡ. Π’ΠΎ Π΅ΡΡΡ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ ΠΏΠ΅ΡΠ²ΠΎΠ΅ Π²Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠΌ Π²ΠΈΠ΄Π°
<!-- ... -->
<xsl:value-of select = "substring-before($str, $search-for)"/>
<xsl:copy-of select = "$replace-with"/>
<xsl:value-of select = "substring-after($str, $search-for)"/>
<!-- ... -->
ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΠΆΠ΅, ΡΡΠΎΠ±Ρ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ Π²ΡΠ΅ Π²Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ, Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΠΎ ΠΏΠΎΠ²ΡΠΎΡΠΈΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Π·Π°ΠΌΠ΅Π½Ρ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ Π²Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ Ρ ΡΠΎΠΉ ΡΠ°ΡΡΡΡ ΡΡΡΠΎΠΊΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π·Π° Π½ΠΈΠΌ. ΠΡΠΈΠ²Π΅Π΄Π΅ΠΌ ΡΠ°Π±Π»ΠΎΠ½, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ.
ΠΠΈΡΡΠΈΠ½Π³ 11.17. Π¨Π°Π±Π»ΠΎΠ½ Π΄Π»Ρ Π·Π°ΠΌΠ΅Π½Ρ ΠΏΠΎΠ΄ΡΡΡΠΎΠΊΠΈ Π² ΡΡΡΠΎΠΊΠ΅<xsl:template name="replace" match="text()" mode="replace">
<xsl:param name="str" select="."/>
<xsl:param name="search-for" select="'
'"/>
<xsl:param name="replace-with">
<xsl:element name="BR"/>
<xsl:text>
</xsl:text>
</xsl:param>
<xsl:choose>
<xsl:when test="contains($str, $search-for)">
<xsl:value-of select="substring-before($str, $search-for)"/>
<xsl:copy-of select="$replace-with"/>
<xsl:call-template name="replace">
<xsl:with-param name="str"
select="substring-after($str, $search-for)"/>
<xsl:with-param name="search-for" select="$search-for"/>
<xsl:with-param name="replace-with " select="$replace-with"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$str"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
Π¨Π°Π±Π»ΠΎΠ½, ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΉ Π² ΡΡΠΎΠΌ Π»ΠΈΡΡΠΈΠ½Π³Π΅, ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²ΡΠ·Π²Π°Π½ Π΄Π²ΡΠΌΡ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ: ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠΌ xsl:apply-templates Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ replace (Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΎΠ½ Π±ΡΠ΄Π΅Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠ΅ ΡΠ·Π»Ρ Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠ³ΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π°), ΠΈΠ»ΠΈ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΈΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π° ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠΌ xsl:call-template. Π¨Π°Π±Π»ΠΎΠ½ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π½Π° Π²Ρ ΠΎΠ΄ ΡΡΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°.
β‘ ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ str, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΡΡΡΠΎΠΊΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΎΠΈΠ·Π²Π΅ΡΡΠΈ Π·Π°ΠΌΠ΅Π½Ρ. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΡΠΎΠΌΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΡΡΡ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΡΠ·Π»Π°.
β‘ ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ search-for, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΠΏΠΎΠ΄ΡΡΡΠΎΠΊΡ, ΠΊΠΎΡΠΎΡΡΡ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π½Π°ΠΉΡΠΈ ΠΈ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ Π² ΡΡΡΠΎΠΊΠ΅ str. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π·Π°ΠΌΠ΅Π½Π΅ Π±ΡΠ΄ΡΡ ΠΏΠΎΠ΄Π»Π΅ΠΆΠ°ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»Ρ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠ° ΡΡΡΠΎΠΊΠΈ, "&#Ρ Π;".
β‘ ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ replace-with, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ, Π½Π° ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π·Π°ΠΌΠ΅Π½ΡΡΡ ΠΏΠΎΠ΄ΡΡΡΠΎΠΊΠΈ search-for. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΡΠΈ ΠΏΠΎΠ΄ΡΡΡΠΎΠΊΠΈ Π±ΡΠ΄ΡΡ Π·Π°ΠΌΠ΅Π½ΡΡΡΡΡ Π½Π° ΡΠ»Π΅ΠΌΠ΅Π½Ρ BR ΠΈ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π·Π° Π½ΠΈΠΌ ΠΏΠ΅ΡΠ΅Π½ΠΎΡ ΡΡΡΠΎΠΊΠΈ, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΡΠΉ Π΄Π»Ρ Π»ΡΡΡΠ΅ΠΉ ΡΠΈΡΠ°Π΅ΠΌΠΎΡΡΠΈ.
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΠΎΡΡΠΎΡΠΌΠ°ΡΠΈΡΡΠ΅ΠΌ ΡΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°:
<pre>One little rabbit
Two little rabbits
Three little rabbits</pre>
ΠΠ°ΠΏΠΈΡΠ΅ΠΌ ΡΠ°Π±Π»ΠΎΠ½ Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° pre:
<xsl:template match="pre">
<xsl:copy>
<xsl:apply-templates mode="replace"/>
</xsl:copy>
</xsl:template>
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π΅Π³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π±ΡΠ΄Π΅Ρ ΠΈΠΌΠ΅ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π²ΠΈΠ΄: