![]() |
Модераторы: diadiavova |
![]() ![]() ![]() |
|
golovnev |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 2.2.2008 Где: Минск Репутация: нет Всего: нет |
1. есть вот такой вот тег в xml: <total>Total (4 wickets, 50 overs) 310</total>, возможно ли средствами xslt извлечь из него инфу так, чтобы на странице отображалось в таком виде: "310/4 (50 ov.)"
2. как сделать проверку деления на ноль средствами xslt? если ноль то нужно выводить прочерк, если не ноль, то результат деления. 3. Как в xslt извлечь имя тега xml? например у меня есть такой xml-код: <?xml version="1.0" encoding="WINDOWS-1251"?> <tutorial> <title>"Заметки об XSL"</title> <author>Леонов Игорь Васильевич</author> </tutorial> нужно отобразить на странице надпись "title" и нужно обязательно ее выдрать из xml. читал в какой то статье, что вот так нужно <xsl:value-of select="tutorial/title/name()"/> но только не работает что-то. очень надеюсь на вашу помощь. спасибо. |
|||
|
||||
under_sun |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 141 Регистрация: 3.10.2007 Где: Ебург Репутация: нет Всего: 17 |
1)Средствами xslt вряд ли, но можно внедрить в xsl скрипт, например на JScript-е, используя тег <msxsl:script>, и в нем уже регулярками распарсить строку.
2)
3)
--------------------
TMTOWTDI |
||||
|
|||||
golovnev |
|
||||
![]() Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 2.2.2008 Где: Минск Репутация: нет Всего: нет |
с 3-им пунктом согласен, так и сделал, остальное у меня немного по другому:
вот так я решил первый вопрос, при помощи функций substring-after и substring-before, можно было и при помощи substring
второй вопрос решил вот так:
Это сообщение отредактировал(а) golovnev - 19.4.2008, 12:18 |
||||
|
|||||
chertoss |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 88 Регистрация: 28.7.2008 Репутация: нет Всего: 2 |
а у меня такой вопрос, есть xml код
<TR> <TD>14:40</TD> <TD>14:50</TD> <TD>17:14</TD> <TD>16:53</TD> <TD>18:38</TD> <TD>18:47</TD> </TR> <TR> <TD>17:37</TD> <TD>17:47</TD> <TD>20:07</TD> <TD>17:04</TD> <TD>19:27</TD> <TD>19:41</TD> </TR> <TR> <TD>19:18</TD> <TD colspan="2" rowspan="2">19:31</TD> <TD>19:06</TD> <TD>21:22</TD> <TD>21:32</TD> </TR> <TR> <TD>19:57</TD> <TD>22:32</TD> <TD rowspan="2">20:33</TD> <TD>22:56</TD> </TR> <TR> <TD>21:50</TD> <TD>22:00</TD> <TD>00:41</TD> <TD>21:50</TD> <TD>23:36</TD> </TR> с помощью xsl делаю полосатую таблицу следущим образом <xsl:template match="TR"> <tr> <xsl:if test="position() mod 2 = 1"> <xsl:attribute name = "style">background:#CCCCCC;</xsl:attribute> </xsl:if> <xsl:apply-templates select="TD"/> </tr> </xsl:template> вопрос заключается в следущем, как сделать другой цвет у элемента TR, в котором содержится элемент TD с атрибутом rowspan? |
|||
|
||||
jsa |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 704 Регистрация: 19.1.2006 Где: Новосибирск Репутация: 3 Всего: 20 |
Добавлено через 27 секунд типа того -------------------- Все мы, на перине с песней, строим небо на земле © Ю. Шевчук |
|||
|
||||
chertoss |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 88 Регистрация: 28.7.2008 Репутация: нет Всего: 2 |
не, немного не правильно я сначала подумал
из XML кода выше формируется полосатая таблица, смысл в том, чтоб строка с rowspan и строка следущая за ней была одного цвета примерно так <TR style="background: #cccccc"> <TD>14:40</TD> <TD>14:50</TD> <TD>17:14</TD> <TD>16:53</TD> <TD>18:38</TD> <TD>18:47</TD> </TR> <TR style="background: #eeeeee"> <TD>17:37</TD> <TD>17:47</TD> <TD>20:07</TD> <TD>17:04</TD> <TD>19:27</TD> <TD>19:41</TD> </TR> <TR style="background: #cccccc"> <TD>19:57</TD> <TD>22:32</TD> <TD rowspan="2">20:33</TD> <TD>22:56</TD> <TD>22:56</TD> <TD>22:56</TD> </TR> <TR style="background: #cccccc"> <TD>21:50</TD> <TD>22:00</TD> <TD>00:41</TD> <TD>21:50</TD> <TD>23:36</TD> </TR> <TR style="background: #eeeeee"> <TD>21:50</TD> <TD>22:00</TD> <TD>00:41</TD> <TD>21:50</TD> <TD>23:36</TD> </TR> так вот идея в том, чтоб в цикле проверять количество ячеек, и если следущая строка имеет ячеек меньше чем первая строка в таблице, то цвет строки не меняется написал примерно следущее <xsl:for-each select="//TR"> <tr> <xsl:choose> <xsl:when test="$sum = count(TD)"> <xsl:attribute name="style">background-color: #cccccc;</xsl:attribute> </xsl:when> </xsl:choose> <xsl:copy-of select="TD"/> </tr> </xsl:for-each> $sum = количеству ячеек в первой строке как мне с каждой интерацией менять цвет у строки на противоположный???? Это сообщение отредактировал(а) chertoss - 29.7.2008, 14:00 |
|||
|
||||
jsa |
|
||||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 704 Регистрация: 19.1.2006 Где: Новосибирск Репутация: 3 Всего: 20 |
чем тебя тогда position не устраивает
PS:
или может я не понял задачу? -------------------- Все мы, на перине с песней, строим небо на земле © Ю. Шевчук |
||||||||
|
|||||||||
chertoss |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 88 Регистрация: 28.7.2008 Репутация: нет Всего: 2 |
ну я написал вот XML <TR> <TD>14:40</TD> <TD>14:50</TD> <TD>17:14</TD> <TD>16:53</TD> <TD>18:38</TD> <TD>18:47</TD> </TR> <TR> <TD>17:37</TD> <TD>17:47</TD> <TD>20:07</TD> <TD>17:04</TD> <TD>19:27</TD> <TD>19:41</TD> </TR> <TR> <TD>19:18</TD> <TD rowspan="2">19:31</TD> <TD>19:06</TD> <TD>21:22</TD> <TD>21:32</TD> <TD>21:32</TD> </TR> <TR> <TD>21:50</TD> <TD>22:00</TD> <TD>00:41</TD> <TD>21:50</TD> <TD>23:36</TD> </TR> <TR> <TD>21:50</TD> <TD>22:00</TD> <TD>00:41</TD> <TD>21:50</TD> <TD>23:36</TD> </TR> а вот что должно получаться на выходе <TR style="background: #cccccc"> <TD>14:40</TD> <TD>14:50</TD> <TD>17:14</TD> <TD>16:53</TD> <TD>18:38</TD> <TD>18:47</TD> </TR> <TR style="background: #eeeeee"> <TD>17:37</TD> <TD>17:47</TD> <TD>20:07</TD> <TD>17:04</TD> <TD>19:27</TD> <TD>19:41</TD> </TR> <TR style="background: #cccccc"> <TD>19:18</TD> <TD rowspan="2">19:31</TD> <TD>19:06</TD> <TD>21:22</TD> <TD>21:32</TD> <TD>21:32</TD> </TR> <TR style="background: #cccccc"> <TD>21:50</TD> <TD>22:00</TD> <TD>00:41</TD> <TD>21:50</TD> <TD>23:36</TD> </TR> <TR style="background: #eeeeee"> <TD>21:50</TD> <TD>22:00</TD> <TD>00:41</TD> <TD>21:50</TD> <TD>23:36</TD> <TD>23:36</TD> </TR> обратите внимание, как сменяется цвет после rowspan - через mod 2 такого не сделать |
|||
|
||||
jsa |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 704 Регистрация: 19.1.2006 Где: Новосибирск Репутация: 3 Всего: 20 |
вот так Добавлено через 25 секунд
Добавлено через 2 минуты и 11 секунд гребаный xmlspy чето не хочет работать с xsl:variable поэтому even и odd сделаны через call-template -------------------- Все мы, на перине с песней, строим небо на земле © Ю. Шевчук |
||||
|
|||||
chertoss |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 88 Регистрация: 28.7.2008 Репутация: нет Всего: 2 |
все работает прекрасно до того, как возникает вот такая ситуация
<TR> <TD>17:37</TD> <TD>17:47</TD> <TD>20:07</TD> <TD>17:04</TD> <TD>19:27</TD> <TD>19:41</TD> </TR> <TR> <TD>19:18</TD> <TD rowspan="2">19:31</TD> <TD>19:06</TD> <TD>21:22</TD> <TD>21:32</TD> <TD>21:32</TD> </TR> <TR> <TD>21:50</TD> <TD>22:00</TD> <TD rowspan="2">00:41</TD> <TD>21:50</TD> <TD>23:36</TD> </TR> <TR> <TD>21:50</TD> <TD>22:00</TD> <TD>00:41</TD> <TD>21:50</TD> <TD>23:36</TD> </TR> тоесть если два роуспана подряд, то первая строка съедается |
|||
|
||||
jsa |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 704 Регистрация: 19.1.2006 Где: Новосибирск Репутация: 3 Всего: 20 |
примерно так -------------------- Все мы, на перине с песней, строим небо на земле © Ю. Шевчук |
|||
|
||||
chertoss |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 88 Регистрация: 28.7.2008 Репутация: нет Всего: 2 |
нету разницы ![]() |
||||
|
|||||
jsa |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 704 Регистрация: 19.1.2006 Где: Новосибирск Репутация: 3 Всего: 20 |
Добавлено через 42 секунды вот так должно работать -------------------- Все мы, на перине с песней, строим небо на земле © Ю. Шевчук |
|||
|
||||
chertoss |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 88 Регистрация: 28.7.2008 Репутация: нет Всего: 2 |
что о совсем какой то вывод непонятный получается |
||||
|
|||||
jsa |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 704 Регистрация: 19.1.2006 Где: Новосибирск Репутация: 3 Всего: 20 |
-------------------- Все мы, на перине с песней, строим небо на земле © Ю. Шевчук |
|||
|
||||
![]() ![]() ![]() |
Правила форума "XML/XSLT" | |
|
Прежде чем опубликовать вопрос, попробуйте воспользоваться поиском - возможно тема уже поднималась. Также рекомендуем Вам зайти в раздел FAQ ,раздел дополняется и, возможно, там вы увидите готовое решение. Для ответов на часто задаваемые вопросы существует FAQ раздела. Новости можно публиковать в разделе новостей. Для статей так же есть специальный раздел Желаем удачи в Вашем деле! Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, diadiavova. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | XML, XSL | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |