Клубове Дир.бг
powered by diri.bg
търси в Клубове diri.bg Разширено търсене

Вход
Име
Парола

Клубове
Dir.bg
Взаимопомощ
Горещи теми
Компютри и Интернет
Контакти
Култура и изкуство
Мнения
Наука
Политика, Свят
Спорт
Техника
Градове
Религия и мистика
Фен клубове
Хоби, Развлечения
Общества
Я, архивите са живи
Клубове Дирене Регистрация Кой е тук Въпроси Списък Купувам / Продавам 11:16 02.05.24 
Компютри и Интернет
   >> XML
*Кратък преглед

Тема Реализация на цикъл в XSLTнови  
Автор GingerCat (Цветен)
Публикувано16.05.03 10:45



За един документ ми трябваше да реализирам нещо като цикъл в XSLT.
Малко четене и ровене и ето едно решение. Ако някой знае друг начин или идея, би ми било интерсно да я науча.

<?xml version="1.0" encoding="UTF-8"?>
<xslt:stylesheet xmlns:xslt="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xslt:output method="text" />

<xslt:param name="p_from" select="1" />
<xslt:param name="p_to" select="20" />
<xslt:param name="p_step" select="1" />

<xslt:template match="/">
<axslt:call-template xmlns:axslt="http://www.w3.org/1999/XSL/Transform" name="for">
<axslt:with-param select="$p_from" name="i"/>
<axslt:with-param select="$p_to" name="to"/>
<axslt:with-param select="$p_step" name="step"/>
</axslt:call-template>
</xslt:template>

<axslt:template xmlns:axslt="http://www.w3.org/1999/XSL/Transform" name="for">
<axslt:param name="i"/>
<axslt:param name="to"/>
<axslt:param name="step"/>
i = <xslt:value-of select="$i"/>
<axslt:if test="$i+$step <= $to">
<axslt:call-template name="for">
<axslt:with-param select="$i + $step" name="i"/>
<axslt:with-param select="$to" name="to"/>
<axslt:with-param select="$step" name="step"/>
</axslt:call-template>
</axslt:if>
</axslt:template>

</xslt:stylesheet>

Редактирано от GingerCat на 16.05.03 10:48.



Тема Re: Реализация на цикъл в XSLT [re: GingerCat]  
Автор Пepин (овълчил се)
Публикувано16.05.03 21:29



Ами нещо подобно на цикъл, но не съвсем е ако имаш всички стойности някъде в някакъв елемент, примерно месеците:

<root>
<year>
<month name='jan'/>
<month name='feb'/>
<month name='mar'/>
<month name='apr'/>
</year>
.... other data ....
</root>


и после:

<xsl:for-each select='/year/month/@name'> ....

Предварително се извинявам за неправилен синтаксис, ама схващате идеята.
Е, да очакваме всички възможни стойности на цикловата променива да са в изходния файл е оптимистично, но може да include-нем. Не съм сигурен че е по-оптимално решение, но ако имаш списък стойности, вместо числов интервал, си струва.
За повече варианти сигурно трябва да погледнем в книгата 'как да направим по сложен начин в XSLT неща които на други езици стават много лесно'. Изобщо съчетаването на процедурно и декларативно програмиране не е лесна работа


There are 10 types of people in this world: those who understand binary and those who don't.



*Кратък преглед
Клуб :  


Clubs.dir.bg е форум за дискусии. Dir.bg не носи отговорност за съдържанието и достоверността на публикуваните в дискусиите материали.

Никаква част от съдържанието на тази страница не може да бъде репродуцирана, записвана или предавана под каквато и да е форма или по какъвто и да е повод без писменото съгласие на Dir.bg
За Забележки, коментари и предложения ползвайте формата за Обратна връзка | Мобилна версия | Потребителско споразумение
© 2006-2024 Dir.bg Всички права запазени.