body> содержит все элементы <fo:table-row>, каждый из которых создает строку таблицы. Каждый элемент <fo:table-row> содержит элементы <fo:table-cell>, в которых содержатся данные ячеек таблицы.

Следующий пример (листинг 11.4) демонстрирует работу с этими элементами. Приведенная таблица стилей XSLT преобразует planets.xml в документ XSL-FO, форматирующий данные планет в таблицу XSL-FO.

Листинг 11.4. tables.xsl

<?xml version='1.0'?>

<xsl:stylesheet

 xmlns:xsl='http://www.w3.org/1999/XSL/Transform'

 xmlns:fo='http://www.w3.org/1999/XSL/Format'

 version='1.0'>

 <xsl:template match='PLANETS'>

  <fo:root xmlns:fo='http://www.w3.org/1999/XSL/Format'>

   <fo:layout-master-set>

    <fo:simple-page-master master-name='page'

     page-height='400mm' page-width='300mm'

     margin-top='10mm' margin-bottom='10mm'

     margin-left='20mm' margin-right='20mm'>

     <fo:region-body margin-top='0mm' margin-bottom='10mm'

      margin-left='0mm' margin-right='0mm'/>

     <fo:region-after extent='10mm'/>

    </fo:simple-page-master>

   </fo:layout-master-set>

   <fo:page-sequence master-name='page'>

    <fo:flow flow-name='xsl-region-body'>

     <fo:table>

      <fo:table-column column-width='30mm'/>

      <fo:table-column column-width='30mm'/>

      <fo:table-column column-width='30mm'/>

      <fo:table-column column-width='30mm'/>

      <fo:table-column column-width='30mm'/>

      <fo:table-column column-width='30mm'/>

      <fo:table-body>

       <fo:table-row>

        <fo:table-cell border-width='0.5mm'>

         <fo:block font-size='18pt' font-weight='bold'>

          Name

         </fo:block>

        </fo:table-cell>

        <fo:table-cell border-width='0.5mm'>

         <fo:block font-size='18pt' font-weight='bold'>

          Mass

         </fo:block>

        </fo:table-cell>

        <fo:table-cell border-width='0.5mm'>

         <fo:block font-size='18pt' font-weight='bold'>

          Day

         </fo:block>

        </fo:table-cell>

        <fo:table-cell border-width='0.5mm'>

         <fo:block font-size='18pt' font-weight='bold'>

          Radius

         </fo:block>

        </fo:table-cell>

        <fo:table-cell border-width='0.5mm'>

         <fo:block font-size='18pt' font-weight='bold'>

          Density

         </fo:block>

        </fo:table-cell>

        <fo:table-cell border-width='0.5mm'>

         <fo:block font-size='18pt' font-weight='bold'>

          Distance

         </fo:block>

        </fo:table-cell>

       </fo:table-row>

       <xsl:apply-templates/>

      </fo:table-body>

     </fo:table>

    </fo:flow>

   </fo:page-sequence>

  </fo:root>

 </xsl:template>

 <xsl:template match='PLANET'>

  <fo:table-row>

   <xsl:apply-templates/>

  </fo:table-row>

 </xsl:template>

 <xsl:template match='NAME'>

  <fo:table-cell border-width='0.5mm'>

   <fo:block font-size='18pt'>

    <xsl:value-of select='.'/>

   </fo:block>

  </fo:table-cell>

 </xsl:template>

 <xsl:template match='MASS'>

  <fo:table-cell border-width='0.5mm'>

   <fo:block font-size='18pt'>

    <xsl:value-of select='.'/>

   </fo:block>

  </fo:table-cell>

 </xsl:template>

 <xsl:template match='DAY'>

  <fo:table-cell border-width='0.5mm'>

   <fo:block font-size='18pt'>

Вы читаете XSLT
Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату