Модераторы: diadiavova
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> XSL - фильрация отображаемого, на конкретном примере 
:(
    Опции темы
NPLana
  Дата 4.5.2006, 21:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 62
Регистрация: 13.5.2005
Где: СПб

Репутация: нет
Всего: нет



Здравствуйте уважаемые форумчане!
Хочу обратиться к вам за помощью. Делаю я небольшую работу (для зачета в вузе). Задача создать три документа: dtd, xml и xsl. Первые два я сделала. Третий - тоже. Но есть в том, что я реализовала недоработка по сравнению с тем, что задумала. А именно - фильтрация по признаку. У нас есть различные коллекции картин и хотелось бы из выпадающего списка выбирать ту, которая и  отображалась бы. Здесь - http://endeavour.nm.ru/XML/ - то, что сделано. Была бы признательна, если бы кто-нибудь указал как доработать XSL в соответствии с желаемым.
 
PM MAIL   Вверх
Beard
Дата 6.5.2006, 14:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 228
Регистрация: 5.7.2005
Где: Санкт-Петербург

Репутация: 7
Всего: 9



Ну это больше в форум по JavaScript - в функции applyFilter есть ошибки. Вот подправленный вариант:
Код

                function applyFilter() {
                    var spans = document.getElementsByTagName('span');
                    var restrictYear = eval('document.all.collectionFilter.value');
                    for(i=0; i!=spans.length; i++) {
                        var dpy = 'none';
                        if(eval('spans[i].ShowTitle')==restrictYear||restrictYear=='все') 
                            dpy = '';
                        spans[i].style.display = dpy;
                    }
                }


И в шаблоне collection надо поменять <xsl:apply-templates /> и </span> местами:
Код

 
   <xsl:template match="collection">
      <span>
         <xsl:attribute name="ShowTitle">
            <xsl:value-of select="./@title" />
         </xsl:attribute>

         <HR />

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

         <xsl:if test="(./description)">
            <I>
               <xsl:value-of select="./description" />
            </I>
         </xsl:if>

         <HR />

         <xsl:apply-templates />
      </span>
   </xsl:template>

И еще, я думаю, combobox стоит формировать динамически. Например, так:
Код

  <xsl:template name="combobox">Показывать определенную коллекцию 
       <nobr>
          <select id="collectionFilter" onChange="applyFilter()">
             <option value="все" selected="selected">все</option>
             
             <xsl:for-each select = "/GRM/collection/@title">
               <option value="{.}">
                  <xsl:value-of select="."/>
               </option>
             </xsl:for-each>

         </select>
       </nobr>
   </xsl:template>


и заменить часть, где он создается напрямую на :
Код

<xsl:call-template name = "combobox" />

 
PM MAIL   Вверх
NPLana
Дата 7.5.2006, 11:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 62
Регистрация: 13.5.2005
Где: СПб

Репутация: нет
Всего: нет



ой спасибо!!!! огромнейшее! все заработало!! smile  
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "XML/XSLT"
diadiavova

Прежде чем опубликовать вопрос, попробуйте воспользоваться поиском - возможно тема уже поднималась.

Также рекомендуем Вам зайти в раздел FAQ ,раздел дополняется и, возможно, там вы увидите готовое решение.

Для ответов на часто задаваемые вопросы существует FAQ раздела. Новости можно публиковать в разделе новостей. Для статей так же есть специальный раздел

Желаем удачи в Вашем деле!


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, diadiavova.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | XML, XSL | Следующая тема »


 




[ Время генерации скрипта: 0.0405 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.