Книга: XSLT

starts-with()

starts-with()

Как можно догадаться по имени (начинается с), функция starts-with проверяет, начинается ли одна строка с другой.

boolean starts-with(string-to-examine, possible-start-string)

В этом примере из главы 4 при помощи starts-with выбираются текстовые узлы, текст в которых начинается с «Е», для того чтобы выбрать Earth (Землю). Затем в описание Земли добавляется текст «(the World)» (мир), и получается «Earth (the World)»:

<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:template match="/PLANETS">
  <HTML>
   <HEAD>
    .
    .
    .
   </BODY>
  </HTML>
 </xsl:template>
 <xsl:template match="PLANET">
  <TR>
   <TD><xsl:apply-templates select="NAME"/></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="text()[starts-with(., 'E')]">
  <xsl:text>(the World)</xsl:text>
 </xsl:template>
 <xsl:template match="NAME">
  <xsl:value-of select="."/>
  <xsl:text> </xsl:text>
  <xsl:value-of select="@UNITS"/>
  <xsl:apply-templates/>
 </xsl:template>
 <xsl:template match="DAY">
  <xsl:value-of select="."/>
  <xsl:text> </xsl:text>
  <xsl:value-of select="@UNITS"/>
 </xsl:template>
</xsl:stylesheet>

Вот результат — заметьте, что подпись для Земли теперь выглядит как «Earth (the World)»:

<HTML>
 <HEAD>
  <TITLE>
   The Planets Table
  </TITLE>
 </HEAD>
 <BODY>
  <H1>
   The Planets Table
  </H1>
  <TABLE BORDER="2">
   <TR>
    <TD>Name</TD>
    <TD>Mass</TD>
    <TD>Radius</TD>
    <TD>Day</TD>
   </TR>
   .
   .
   .
   <TR>
    <TD>Earth (the World</TD>
    <TD>1 (Earth = 1)</TD>
    <TD>2107 miles</TD>
    <TD>1 days</TD>
   </TR>
  </TABLE>
 </BODY>
</HTML>

Оглавление книги


Генерация: 0.041. Запросов К БД/Cache: 0 / 0
поделиться
Вверх Вниз