Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / <xsl:variable> / 5 сообщений из 5, страница 1 из 1
03.10.2006, 14:14
    #34028780
NNika
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
<xsl:variable>
есть 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.
-<root> 
-   <station code="801208" name="МЕТАЛЛУРГИЧЕСКАЯ" PredDay="20060924"  NextDay="20060926">
-       <CL client="ВСЕГО ">
-           <GR>
                <gruz>Автомобили</gruz>
-                <prop>
                   <vagm> 6 </vagm>
                   <vesm> 76 </vesm>
                   <plan_v> 0 </plan_v>
                  <plan_t> 0 </plan_t>
                 </prop>
             </GR>
        </CL>
    </station>
-   <station code="800008" name="ГЛАВНАЯ" PredDay="20060924"  NextDay="20060926">
-       <CL client="ВСЕГО ">
-           <GR>
                <gruz>Металлоконструкции</gruz>
-                <prop>
                   <vagm> 10 </vagm>
                   <vesm> 760 </vesm>
                   <plan_v> 0 </plan_v>
                  <plan_t> 0 </plan_t>
                 </prop>
             </GR>
        </CL>
    </station>

</root>

Есть следующая трансформация:
Код: 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="root">
    
 <xsl:variable name="count_st">
          <xsl:value-of select="count(station)"/>
    </xsl:variable>
 <xsl:apply-templates select="station" />

  <xsl:for-each select="station">
       <xsl:value-of select="@name"/>
            <xsl:apply-templates select="CL" />
   </xsl:for-each>

</xsl:template>


<xsl:template match="CL">
    <xsl:for-each select=".">
       <xsl:variable name="row">
            <xsl:value-of select="2*count(GR)"/>
       </xsl:variable>
	<td rowspan="{$row}">
	      <xsl:value-of select="@client"/>
	<xsl:for-each select="GR[position()=1]">
		<xsl:value-of select="gruz"/>
             </xsl:for-each>
  </xsl:for-each>
</xsl:template>	

<xsl:template match="station">
      <xsl:variable name="station">
	<xsl:value-of select="@code"/>
      </xsl:variable>
      <xsl:variable name="PredDay">
          <xsl:value-of select="@PredDay"/>
       </xsl:variable>
</xsl:template>	         

Мне нужно получить значение переменной count_st в шаблоне <xsl:template match="station">. Как это сделать?
...
Рейтинг: 0 / 0
03.10.2006, 14:47
    #34028899
M0us
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
<xsl:variable>
в корне объявите
Код: plaintext
1.
2.
 <xsl:variable name="count_st">
          <xsl:value-of select="root/count(station)"/>
</xsl:variable>
и можете обращаться к ней из любого template.

или передавай те как параметр...
см. <xsl:with-param> и <xsl:param>
...
Рейтинг: 0 / 0
03.10.2006, 15:02
    #34028956
maXmo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
<xsl:variable>
<xsl:variable name="count_st" select="count(root/station)"/>
...
Рейтинг: 0 / 0
03.10.2006, 15:03
    #34028960
maXmo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
<xsl:variable>
лучше непосредственно от корня указывать
<xsl:variable name="count_st" select="count(/root/station)"/>
...
Рейтинг: 0 / 0
04.10.2006, 08:19
    #34030407
NNika
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
<xsl:variable>
в шаблоне station написала
<xsl:variable name="count_st" select="count(/root/station)"/> и всё получилось. А как сказал M0us не получилось.
...
Рейтинг: 0 / 0
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / <xsl:variable> / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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