Вход/Регистрация
Технология XSLT
вернуться

Валиков Алексей Н.

Шрифт:

 </xsl:template>

 <!-- Шаблон обработки категории-->

 <xsl:template match="category">

<!-- Параметр, указывающий отступ -->

<xsl:param name="indent"/>

<!-- Выводим отступ -->

<xsl:value-of select="$indent"/>

<!-- Выводим информацию о категории в виде ссылки -->

<а href="#">

<!-- Перед названием категории выводим соответствующую иконку -->

<img height="11" width="11" border="0">

<xsl:choose>

<!--

| Если категория не содержит субэлементов,

| выводим иконку с точкой

+-->

<xsl:when test="not(*)">

<xsl:attribute name="src">images/dot.gif</xsl:attribute>

</xsl:when>

<!--

| Если категория принадлежит ветке выбранной категории,

| выводим иконку с минусом, что означает раскрытую ветку

+-->

<xsl:when test="count(.|$path)=count($path)">

<xsl:attribute name="src">images/minus.gif</xsl:attribute>

</xsl:when>

<!--

| Если категория не принадлежит ветке выбранной категории,

| выводим иконку с плюсом, что означает нераскрытую ветку

+-->

<xsl:otherwise>

<xsl:attribute name="src">images/plus.gif</xsl:attribute>

</xsl:otherwise>

</xsl:choose>

</img>

<!--

| Выводим неразрывный пробел.

| &#xA0; в Unicode соответствует &nbsp;

+-->

<xsl:text>&#xA0;</xsl:text>

<!-- Выводим название категории -->

<xsl:value-of select="@title"/>

</a>

<br/><xsl:text>&#xA;</xsl:text>

<!--

| Если категория принадлежит раскрываемой ветке,

| обрабатываем ее подкатегории

+-->

<xsl:if test="count(.|$path)=count($path)">

<xsl:apply-templates select="category">

<!-- Увеличиваем отступ на три пробела -->

<xsl:with-param name="indent"

select="concat($indent,'&#xA0;&#xA0;&#xA0;')"/>

</xsl:apply-templates>

</xsl:if>

 </xsl:template>

</xsl:stylesheet>

Теперь осталось лишь только создать страницу, которая при помощи JavaScript и MSXML будет выполнять преобразования и выводить результат.

Для того чтобы воспользоваться возможностями MSXML, мы включим в нашу страницу два объекта:

<!-- Объект, представляющий входящий документ -->

<object

 id="source"

 width="0"

 height="0"

 classid="clsid:f5078f32-c551-11d3-89b9-0000f81fe221">

 <param name="async" value="false">

 <param name="validateOnParse" value="false">

</object>

<!-- Объект, представляющий документ преобразования -->

<object

 id="stylesheet"

 width="0"

 height="0"

 classid="clsid:f5078f32-c551-11d3-89b9-0000f81fe221">

  • Читать дальше
  • 1
  • ...
  • 188
  • 189
  • 190
  • 191
  • 192
  • 193
  • 194
  • 195
  • 196
  • 197
  • 198
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: