powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / <xsl:variable>
5 сообщений из 5, страница 1 из 1
<xsl:variable>
    #34028780
NNika
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
есть 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
<xsl:variable>
    #34028899
M0us
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в корне объявите
Код: 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
<xsl:variable>
    #34028956
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
<xsl:variable name="count_st" select="count(root/station)"/>
...
Рейтинг: 0 / 0
<xsl:variable>
    #34028960
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
лучше непосредственно от корня указывать
<xsl:variable name="count_st" select="count(/root/station)"/>
...
Рейтинг: 0 / 0
<xsl:variable>
    #34030407
NNika
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
в шаблоне station написала
<xsl:variable name="count_st" select="count(/root/station)"/> и всё получилось. А как сказал M0us не получилось.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / <xsl:variable>
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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