powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Форматирование таблицы в шаблоне: for-each, не могу написать код
13 сообщений из 13, страница 1 из 1
Форматирование таблицы в шаблоне: for-each, не могу написать код
    #36654873
Новичок_я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет!
Есть 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.
<DL>
   <D>
      <Name>...</Name>
      <LT>
         <T>
            <N>..</N>
            <W>..</W>
         </T>
         <T>
            <N>..</N>
            <W>..</W>
         </T>
         ...
         ...
         <T>
            <N>..</N>
            <W>..</W>
         </T>
      </LT>
   </D>
   ...
   ...
   ...
   <D>
      <Name>...</Name>
      <LT>
         <T>
            <N>..</N>
            <W>..</W>
         </T>
         ...
         ...
         <T>
            <N>..</N>
            <W>..</W>
         </T>
      </LT>
   </D>

</DL>

Необходимо получить такую таблицу (см. аттач)


написал следующий код, но он работает неверно

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
<xsl:for-each select="//DL/D">
   <tr>
      <td style = 'font-size: 10pt; text-align = center'>
         <xsl:attribute name = "rowspan">
            <xsl:value-of select = "count(./LT/T)"/>
         </xsl:attribute>
         <xsl:value-of select="./N"/>
      </td>
   </tr>

   <xsl:for-each select="./LT/T">
   <tr>
      <td style = 'font-size: 10pt; text-align = left'><xsl:value-of select="./N"/></td>
      <td style = 'font-size: 10pt; text-align = center'><xsl:value-of select="./W"/></td>

   </tr>
   </xsl:for-each>   

   </xsl:for-each>
...
Рейтинг: 0 / 0
Форматирование таблицы в шаблоне: for-each, не могу написать код
    #36655009
junb1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если я правильно понял, что Name это первый столбец. А N, W это второй и третий столбцы

Код: 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.
	<table border="1" cellpadding="0" cellspacing="0">
		<xsl:for-each select="/DL/D">
			<tr>
				<td>
					<xsl:attribute name = "rowspan">
						<xsl:value-of select = "count(LT/T)"/>
					</xsl:attribute>
					<xsl:value-of select='Name'/>
					<br/>
				</td>

				<td>
					<xsl:value-of select='LT/T[position()=1]/N'/>
				</td>
				<td>
					<xsl:value-of select='LT/T[position()=1]/W'/>
				</td>
				<xsl:for-each select="LT/T[position()>1]">
					<tr>
						<td>
							<xsl:value-of select='N'/>
						</td>
						<td>
							<xsl:value-of select='W'/>
						</td>
					</tr>
				</xsl:for-each>
			</tr>

		</xsl:for-each>
	</table>
...
Рейтинг: 0 / 0
Форматирование таблицы в шаблоне: for-each, не могу написать код
    #36655740
Новичок_я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что-то не то. Форматирование съезжает :-(
...
Рейтинг: 0 / 0
Форматирование таблицы в шаблоне: for-each, не могу написать код
    #36655777
junb1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
куда съезжает?
...
Рейтинг: 0 / 0
Форматирование таблицы в шаблоне: for-each, не могу написать код
    #36655906
Новичок_я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Документ
...
Рейтинг: 0 / 0
Форматирование таблицы в шаблоне: for-each, не могу написать код
    #36655907
Новичок_я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Шаблон
...
Рейтинг: 0 / 0
Форматирование таблицы в шаблоне: for-each, не могу написать код
    #36657427
junb1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уже и отвечать на ваш вопрос не хочется. Сначала даете одну структуру xml. Потом другую. Конечно оно работать не будет. Вы хоть сами знаете какие атрибуты куда надо выводить? В общем думайте. Сюда можете не отвечать :)
...
Рейтинг: 0 / 0
Форматирование таблицы в шаблоне: for-each, не могу написать код
    #36657433
junb1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ой.. :) простите. погорячился )). Не заметил вашу xslt. Так а что там съезжает, я так и не понял :) вроде все нормально показывает. Если вы о том, что границы таблицы не отображены, так это пустые поля. Проверяйте если ничего нет, то выводите допустим символ   такой себе пробел
...
Рейтинг: 0 / 0
Форматирование таблицы в шаблоне: for-each, не могу написать код
    #36657440
junb1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
еще строчка выбора <xsl:for-each select="//DL/D"> выбирает все элементы D. Я так подозреваю, что там надо только подчиненные. Замените на <xsl:for-each select="DL/D"> (т.е. уберите два слеша)
...
Рейтинг: 0 / 0
Форматирование таблицы в шаблоне: for-each, не могу написать код
    #36658239
Новичок_я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Приветствую!
Когда задавал вопрос, накидал примерную структуру документа, а в конкретном примере пришлось детализировать. Извините, ввел в заблуждение :-)
Документ форматируется неверно (r1.gif), надо как в r2.gif
Не совсем понял, что Вы имели в виду про <xsl:for-each select="//DL/D">, у меня такого кода нет :-(
...
Рейтинг: 0 / 0
Форматирование таблицы в шаблоне: for-each, не могу написать код
    #36658241
Новичок_я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Правильный скрин
...
Рейтинг: 0 / 0
Форматирование таблицы в шаблоне: for-each, не могу написать код
    #36658422
junb1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: 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.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
<?xml version="1.0" encoding="Windows-1251" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
	<xsl:output method="html" media-type="text/html; charset=windows-1251" />
	<xsl:template match="/">
		<html>
			<head/>
			<body>
				<font face = "Arial">
					<table border = "0" width = "630">
						<xsl:for-each select="//MT">
							<table border = "1" width = "100%" cellpadding = "1" cellspacing = "0">
								<caption style = "font-size: 10pt; text-align = top">
									<b>
										<xsl:value-of select="./N"/>
									</b>
								</caption>
								<tr>
									<td style = "font-size: 10pt; width = 17%; text-align = left">D_Name</td>
									<td style = "font-size: 10pt; width = 45%; text-align = left">T_Name</td>
									<td style = "font-size: 10pt; width = 10%; text-align = center">W</td>
								</tr>
								<xsl:for-each select="//MT/DL/D">
									<xsl:if test="count(LT/*)!=0">
										<tr>
											<td style = 'font-size: 10pt; text-align = center'>
												<xsl:attribute name = "rowspan">
													<xsl:value-of select = "count(./LT/T)"/>
												</xsl:attribute>
												<xsl:value-of select="./N"/>
											</td>
											<td style = 'font-size: 10pt; text-align = left'>
												<xsl:value-of select="./LT/T[position() = 1]/N"/>
											</td>
											<td style = 'font-size: 10pt; text-align = center'>
												<xsl:value-of select="./LT/T[position() = 1]/W"/>
											</td>
										</tr>
										<xsl:for-each select="./LT/T[position() > 1]">
											<tr>
												<td style = 'font-size: 10pt; text-align = left'>
													<xsl:value-of select="./N"/>
												</td>
												<td style = 'font-size: 10pt; text-align = center'>
													<xsl:value-of select="./W"/>
												</td>
											</tr>
										</xsl:for-each>
									</xsl:if>
								</xsl:for-each>
							</table>
						</xsl:for-each>
					</table>
				</font>
			</body>
		</html>
	</xsl:template>
</xsl:stylesheet>
...
Рейтинг: 0 / 0
Форматирование таблицы в шаблоне: for-each, не могу написать код
    #36658465
Новичок_я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо!
Попробую :-)
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Форматирование таблицы в шаблоне: for-each, не могу написать код
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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