Печать содержимого после окончания всех страниц - PullRequest
1 голос
/ 12 января 2012

Я генерирую HTML, используя XSL во время выполнения. Моя задача - распечатать раздел подписи после того, как все данные напечатаны. Я печатаю данные так:
Данные клиента 1
Данные клиента 2
Данные клиента 3
Данные клиента 4
Данные клиента 5
Подпись владельца Данные каждого клиента имеют идентификатор, имя, адрес и т. Д., До 5 деталей на клиента.
В конце всех данных клиента мне нужно распечатать раздел подписи владельца.
В настоящее время данные клиента хранятся до 3 страниц, а раздел владельца печатается только на первой странице. Но мне нужна подпись владельцев в конце 3-х страниц.

1 Ответ

1 голос
/ 12 января 2012

Это простой пример того, как получить желаемый результат в конце обработки всего остального :

<xsl:stylesheet version="1.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:output omit-xml-declaration="yes" indent="yes"/>
 <xsl:strip-space elements="*"/>

 <xsl:template match="/*">
     <xsl:apply-templates/>

     Signature:
 </xsl:template>

 <xsl:template match="customer">
  Customer <xsl:value-of select="position()"/> data
 </xsl:template>
</xsl:stylesheet>

когда это преобразование применяется к следующему документу XML :

<t>
 <customer/>
 <customer/>
 <customer/>
 <customer/>
 <customer/>
</t>

желаемый результат получен :

  Customer 1 data

  Customer 2 data

  Customer 3 data

  Customer 4 data

  Customer 5 data


     Signature:

Объяснение

Вся обработка (без учета верхних узлов неэлемента (можно предположить, что таких не существует)) фиксируется в этом шаблоне:

 <xsl:template match="/*">
     <xsl:apply-templates/>

     Signature:
 </xsl:template>

Поскольку строка "Signature:" физически является самой последней в шаблоне, и поскольку документ XML имеет только один узел верхнего элемента, и этот шаблон выбирается только один раз, это гарантирует, что строка "Signature:" является последним выводом. производится преобразованием.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...