Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / <xsl:for-each... как принудительно сделать что-то наподобие MoveNext ? / 5 сообщений из 5, страница 1 из 1
02.11.2006, 17:17
    #34101809
Kezya
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
<xsl:for-each... как принудительно сделать что-то наподобие MoveNext ?
Всем здравствуйте.
обхожу в шаблоне документ используя <for-each..
но мне надо, чтоба на одной строке располагалось для элемента (в таблице), поэтому надо как-то сделать
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
<xsl:for-each...
<tr>
    <td>_получаю данные_</td>
_здесь надо сделать MoveNext(), как ?
    <td>_получаю данные_</td>
</tr>
</xsl:for-each...
...
Рейтинг: 0 / 0
03.11.2006, 09:14
    #34102807
Kezya
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
<xsl:for-each... как принудительно сделать что-то наподобие MoveNext ?
А допустима ли вот такая конструкция:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
	<xsl:if test = "position() mod 2 = 1">
		<tr>
			<td style = "font-size: 8pt;" align = 'center'>
	</xsl:if>

	<xsl:if test = "position() mod 2 = 0">
		<td>
	</xsl:if>
		<br/>data
				
	<xsl:if test = "position() mod 2 = 0">
		</td></tr>
	</xsl:if>

	<xsl:if test = "position() mod 2 = 1">
		<xsl:if test = "position() != last()">
			</td>
		</xsl:if>
		
		<xsl:if test = "position() = last()">
			</td></tr>
		</xsl:if>
	</xsl:if>
...
Рейтинг: 0 / 0
03.11.2006, 14:47
    #34104372
maXmo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
<xsl:for-each... как принудительно сделать что-то наподобие MoveNext ?
Код: plaintext
1.
2.
3.
4.
5.
<for-each>
 <if test="position() mod 2 = 0">
  <tr><td><value-of select="."/></td>
  <td><value-of select="following-sibling::node()"/></td></tr>
 </if>
</for-each>
...
Рейтинг: 0 / 0
07.11.2006, 08:11
    #34108090
Kezya
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
<xsl:for-each... как принудительно сделать что-то наподобие MoveNext ?
Спасибо!
Вот только никак не могу получить следующий элемент. Структура документа такова:

<ListRaw>
<Raw>
<Name>..</Name>
</Raw>

<Raw>
<Name>..</Name>
</Raw>

<Raw>
<Name>..</Name>
</Raw>
</ListRaw>


В шаблоне перехожу к след. элементу:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
	<xsl:for-each select="//ListRaw/Raw">
	<tr>
		<td style = "font-size: 10pt; text-align = center; width = 50%">
			<br/><xsl:value-of select = "./Name"/>
		</td>

		<if test = "position() mod 2 = 0">
			<value-of select = "./following-sibling::node()"/>
			<td style = "font-size: 10pt; text-align = center; width = 50%">
				<br/><xsl:value-of select = "./Name"/>
			</td>
			</td>
		</if>
	</tr>
	</xsl:for-each>
Но во вторую колонку в таблице выводится то же самое, что и в первую, т.е. переход не произошел :(
...
Рейтинг: 0 / 0
07.11.2006, 12:02
    #34108640
maXmo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
<xsl:for-each... как принудительно сделать что-то наподобие MoveNext ?
у меня всё выводит
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
<root>
 <Raw><Name> 1 </Name></Raw>
 <Raw><Name> 2 </Name></Raw>
 <Raw><Name> 3 </Name></Raw>
 <Raw><Name> 4 </Name></Raw>
 <Raw><Name> 5 </Name></Raw>
</root>

<xsl:template match="/root">
 <table>
  <xsl:for-each select="Raw">
   <xsl:if test="position() mod 2 = 1">
    <tr><td><xsl:value-of select="Name"/></td>
    <td><xsl:value-of select="following-sibling::Raw[1]/Name"/></td></tr>
   </xsl:if>
  </xsl:for-each>
 </table>
</xsl:template>
...
Рейтинг: 0 / 0
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / <xsl:for-each... как принудительно сделать что-то наподобие MoveNext ? / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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