Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Тривиальная задача про текст. / 11 сообщений из 11, страница 1 из 1
12.03.2007, 16:36
    #34384904
Vladimir Kovalevskii
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тривиальная задача про текст.
Код: plaintext
1.
2.
3.
4.
5.
   <spec:item sign="*">
    <spec:gloss>Система</<spec:gloss> обеспечивает возможность консолидации финансовой информации
     по одному или нескольким структурным подразделениям и по одной
    или нескольким аналитикам.
   </spec:item>

соответственно хочу, чтобы <spec:gloss> после преобразования заменились на <a href> </a>

решается данная тривиальная задача с помощью XSL???

не могу сообразить как???

Спасибо.
...
Рейтинг: 0 / 0
12.03.2007, 16:41
    #34384927
andrushok
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тривиальная задача про текст.
Типа

Код: plaintext
1.
2.
3.
4.
5.
...
<xsl:template match="spec:gross">
     <a href="куда-то ..."><xsl:value-of select="."></a>
</xsl:template>
...
...
Рейтинг: 0 / 0
12.03.2007, 17:00
    #34384995
Vladimir Kovalevskii
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тривиальная задача про текст.
andrushokТипа

Код: plaintext
1.
2.
3.
4.
5.
...
<xsl:template match="spec:gross">
     <a href="куда-то ..."><xsl:value-of select="."></a>
</xsl:template>
...


внутри другого шаблона не покатит ... :(
...
Рейтинг: 0 / 0
12.03.2007, 17:31
    #34385092
andrei77
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тривиальная задача про текст.
шаблон в шаблоне в принципе быть не может,
единственный способ взывать из одного шаблона
другой именованный шаблон
...
Рейтинг: 0 / 0
12.03.2007, 17:49
    #34385155
andrushok
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тривиальная задача про текст.
Посмотри <xls:call-template ...>
...
Рейтинг: 0 / 0
12.03.2007, 17:59
    #34385180
Vladimir Kovalevskii
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тривиальная задача про текст.
а как такое внутри for-each сделать .... потому что

Код: plaintext
<spec:item sign="*">

перебираются в цикле :(.
...
Рейтинг: 0 / 0
12.03.2007, 19:47
    #34385454
andrushok
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тривиальная задача про текст.
Как я уже говорил - for-each практицки всегда можно заменить новым template. Я использую его редко. Причина - сбивается текущий node.

Можно задачку по подробнее, а то не понятно что и где (и куда) перебирается?
...
Рейтинг: 0 / 0
13.03.2007, 09:41
    #34386054
Vladimir Kovalevskii
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тривиальная задача про текст.
andrushokКак я уже говорил - for-each практицки всегда можно заменить новым template. Я использую его редко. Причина - сбивается текущий node.

Можно задачку по подробнее, а то не понятно что и где (и куда) перебирается?

xml:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
<?xml version="1.0" encoding="UTF-8" ?> 
- <spec:root xmlns:spec="http://nek-slv-kovalevskiy/core_web/specification">
  <spec:header>[HEADER]</spec:header> 
- <spec:brief caption="CAPTION">
- <spec:subbrief caption="BRIEF INFO">
  <spec:item sign="SIGNATURE">TEXT</spec:item> 
  <spec:item sign="SIGNATURE">TEXT</spec:item> 
  <spec:item sign="SIGNATURE">TEXT</spec:item> 
  </spec:subbrief>
  </spec:brief>
- <spec:links>
  <spec:item sign="SIGNATURE">TEXT</spec:item> 
  </spec:links>
- <spec:tips>
  <spec:item sign="SIGNATURE">TEXT</spec:item> 
  </spec:tips>
- <spec:definition caption="CAPTION">
  <spec:item sign="SIGNATURE" /> 
  <spec:item sign="SIGNATURE" /> 
  </spec:definition>
- <spec:links>
  <spec:item sign="SIGNATURE">TEXT</spec:item> 
  </spec:links>
- <spec:tips>
  <spec:item sign="SIGNATURE">TEXT</spec:item> 
  </spec:tips>
- <spec:abstract caption="CAPTION">
  <spec:item sign="SIGNATURE" /> 
  </spec:abstract>
- <spec:links>
  <spec:item sign="SIGNATURE">TEXT</spec:item> 
  </spec:links>
- <spec:tips>
  <spec:item sign="SIGNATURE">TEXT</spec:item> 
  </spec:tips>
- <spec:context caption="Содержание">
  <spec:contextitem ref="XML_URI" sign="SIGNATURE" group="1|0">TEXT</spec:contextitem> 
  </spec:context>
- <spec:links>
  <spec:item sign="SIGNATURE">TEXT</spec:item> 
  </spec:links>
- <spec:tips>
  <spec:item sign="SIGNATURE">TEXT</spec:item> 
  </spec:tips>
  </spec:root>

хочу HTML вида.

ЗАГОЛОВОК
бла бла бла бла
ОПРЕДЕЛЕНИЕ
бла бла бла бла
бла <a href="#" onclick="open_glossary('слово_из_глоссария1')">слово_из_глоссария</a>
ИЗМЕРЕНИЕ
бла бла бла бла
бла <a href="#" onclick="open_glossary('слово_из_глоссария1')">слово_из_глоссария1</a> бла
бла

....
....
...
Рейтинг: 0 / 0
13.03.2007, 09:42
    #34386059
Vladimir Kovalevskii
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тривиальная задача про текст.
П.С.

т.е значение TEXT это набор слов, хочется обернуть слово в тег, чтобы он потом трансформировался в ссылку.
...
Рейтинг: 0 / 0
13.03.2007, 14:39
    #34387335
andrushok
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тривиальная задача про текст.
Из XML я мало чего понял, какие item к чему относятся. Но попробуем ...
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
<xsl:template match=".">
   <xsl:apply-template select="spec:brief">
   <xsl:apply-template select="spec:definition">
   <xsl:apply-template select="spec:abstracts">
   ...
</xsl:template>

<xsl:template match="spec:brief">
ЗАГОЛОВОК
бла бла бла бла
   <xsl:apply-template select="spec:item">
   ...
</xsl:template>

<xsl:template match="spec:definition">
ОПРЕДЕЛЕНИЕ
бла бла бла бла
   <xsl:apply-template select="spec:item">
   ...
</xsl:template>

<xsl:template match="spec:abstracts">
ИЗМЕРЕНИЕ
бла бла бла бла
   <xsl:apply-template select="spec:item">
   ...
</xsl:template>

<xsl:template match="spec:item">
бла <xsl:element name="a">
          <xsl:attribute name="href">#</xsl:attribute>
          <xsl:attribute name="onclick">open_glossary('<xsl:value-of select="spec:gloss"/>')         </xsl:attribute>
      </xsl:element> бла
   ...
</xsl:template>


И никаких те циклов ...
...
Рейтинг: 0 / 0
13.03.2007, 15:58
    #34387695
andrushok
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тривиальная задача про текст.
Да, забыл одну запись добавить
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
<xsl:template match="spec:item">
бла <xsl:element name="a">
          <xsl:attribute name="href">#</xsl:attribute>
          <xsl:attribute name="onclick">open_glossary('<xsl:value-of select="spec:gloss"/>')         </xsl:attribute>
<xsl:value-of select="spec:gloss"/>
      </xsl:element> бла
   ...
</xsl:template>
Вот так должно быть
...
Рейтинг: 0 / 0
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Тривиальная задача про текст. / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]