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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Переместить вперед указатель обрабатываемой ноды, Реализуемо? 
:(
    Опции темы
IZ@TOP
Дата 11.8.2005, 12:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

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



Допустим, обрабатываем мы ноду row, родитель которой articles:

Код

<xsl:for-each select="articles/row">

    ...

</xsl:for-each>


Есть ли возможность как ни будь переместить указатель ноды вперед? Чтобы можно было за один цикл for-each обработать две ноды row?


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
3,14
Дата 15.8.2005, 13:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1614
Регистрация: 18.6.2004
Где: Н. Новгород

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



Не совсем понял что ты хочешь сделать, может пример конкретный приведёшь?


--------------------
Может быть, это только мой бред,
Может быть, жизнь не так хороша,
Может быть, я не выйду на свет,
Но я летал, когда пела душа...
PM MAIL   Вверх
dm9
Дата 16.8.2005, 09:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дмитрий Копытин
****


Профиль
Группа: Vingrad developer
Сообщений: 3876
Регистрация: 22.7.2002
Где: Москва

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



То, что ты сейчас написал, и есть обработка всех нод row, которые являются дочерними для articles.

Хотя, возможно, я тоже не понял вопроса.

PM MAIL ICQ   Вверх
IZ@TOP
Дата 16.8.2005, 10:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

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



Это например как в РНР, имеем массив:

Код

$a = array(1, 2, 3, 4);


И нам нужно его обработать по две записи за раз:

Код

for($i = 0; $i < sizeof($a); $i++) {
 
   echo $a[$i++];

   echo $a[$i];

}


Тоже самое нужно и в цикле for-each реализовать при помощи XSL шаблонов.
Т.е. чтобы можно было за один оборот обратится сначало к row[1] и row[2], но чтобы при следующей инкрементации у нас уже были 3 и 4.


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
Janita
Дата 16.8.2005, 10:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Насколько я понимаю, ты хочешь находясь на какой-то ноде row получить доступ к следующей ноде row. Если да, то сделать это можно с помощью following::row[1]
PM MAIL   Вверх
IZ@TOP
Дата 16.8.2005, 10:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

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



Janita, именно это и хочу. А будет ли в таком случае при инкременте следующая нода не той которою я вызвал вручную?


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
3,14
Дата 16.8.2005, 10:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1614
Регистрация: 18.6.2004
Где: Н. Новгород

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



Ну или
Код

 following::row[pos() + 1]



--------------------
Может быть, это только мой бред,
Может быть, жизнь не так хороша,
Может быть, я не выйду на свет,
Но я летал, когда пела душа...
PM MAIL   Вверх
IZ@TOP
Дата 16.8.2005, 10:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

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



Или у меня получится дубляж?


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
3,14
Дата 16.8.2005, 10:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1614
Регистрация: 18.6.2004
Где: Н. Новгород

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



Цитата(IZ @ 16.8.2005, 10:33)
А будет ли в таком случае при инкременте следующая нода не той которою я вызвал вручную?

Будет, если ты хочешь смотреть через одну используй:
Код

<xsl:for-each select="articles/row[pos() mod 2 = 0]">
</xsl:for-each>



--------------------
Может быть, это только мой бред,
Может быть, жизнь не так хороша,
Может быть, я не выйду на свет,
Но я летал, когда пела душа...
PM MAIL   Вверх
IZ@TOP
Дата 16.8.2005, 10:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

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



3,14, неа. Давайте я по другому спрошу.

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

Добавлено @ 10:39
Слушай... кажется я понял на что ты намекаешь... ага, вроде понял smile А интересно, может есть еще вариант?


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
3,14
Дата 16.8.2005, 10:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1614
Регистрация: 18.6.2004
Где: Н. Новгород

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



К примеру так:
Код

<table>
  <tr>
     <td>
       <xsl:for-each select="articles/row">
          <xsl:if test="position() mod 2 = 0">
            <xsl:value-of select="."/><br/>
          </xsl:if>
       </xsl:for-each>
     </td>
     <td>
       <xsl:for-each select="articles/row">
          <xsl:if test="position() mod 2 = 1">
            <xsl:value-of select="."/><br/>
          </xsl:if>
       </xsl:for-each>
     </td>
  </tr>
</table>


Это сообщение отредактировал(а) 3,14 - 16.8.2005, 10:47


--------------------
Может быть, это только мой бред,
Может быть, жизнь не так хороша,
Может быть, я не выйду на свет,
Но я летал, когда пела душа...
PM MAIL   Вверх
IZ@TOP
Дата 16.8.2005, 10:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

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



3,14, вау!!! Спасибо большоее!!!!!!!! А как на счет чтобы ячейками заполнялось? Т.е. у тебя заполняются ячейки, а нужно чтобы они сами заполнялись (это чтобы данные выравнивались).


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
3,14
Дата 16.8.2005, 11:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1614
Регистрация: 18.6.2004
Где: Н. Новгород

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



Держи:
Код

          <table>
            <xsl:for-each select="articles/row[position() mod 2 = 1]">
              <tr>
                <td><xsl:value-of select="."/></td>
                <td><xsl:value-of select="following::row"/></td>
              </tr>
            </xsl:for-each>
          </table>



--------------------
Может быть, это только мой бред,
Может быть, жизнь не так хороша,
Может быть, я не выйду на свет,
Но я летал, когда пела душа...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "XML/XSLT"
diadiavova

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

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

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

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


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

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


 




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


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

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