Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / XML + XSL / 6 сообщений из 6, страница 1 из 1
07.11.2007, 12:00
    #34921389
sashka304
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XML + XSL
есть такой хмл:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="test.xsl"?>
<root>
<row>
<prm1>aaa</prm1>
<prm2> 25 </prm2>
<prm3> 47 </prm3>
<prm4> 1 </prm4>
</row>
<row>
<prm1>aaa</prm1>
<prm2> 34 </prm2>
<prm3> 58 </prm3>
<prm4> 1 </prm4>
</row>
<row>
<prm1>bbb</prm1>
<prm2> 55 </prm2>
<prm3> 77 </prm3>
<prm4> 1 </prm4>
</row> 

</root>
и к нему xsl:
Код: 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.
<?xml version="1.0" encoding="windows-1251"?>
<xsl:stylesheet version="1.0"
                xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

	<xsl:template match="root">
		<html>
			<table border='2' bordercolor = "black">
				<xsl:apply-templates select='row'/>
			</table>
		</html>
	</xsl:template>
	
	<xsl:template match="row">
		<tr>
			<xsl:apply-templates select='*'/>
		</tr>
	</xsl:template>

	<xsl:template match="*">

		<xsl:variable name='rowCount'>
			<xsl:value-of select="count(following::*[.=current()])"/>
		</xsl:variable>
		
		<xsl:variable name='rowCountPreceding'>
			<xsl:value-of select="count(preceding::*[.=current()])"/>
		</xsl:variable>
		
		<xsl:if test='$rowCountPreceding=0'>
			<td>
				<xsl:if test="$rowCount > 0">
					<xsl:attribute name='rowspan'>
						<xsl:value-of select="$rowCount+1"/>
					</xsl:attribute>
				</xsl:if>
				<xsl:value-of select="."/>
			</td>
		</xsl:if>
	</xsl:template>
 </xsl:stylesheet>
в результате выполнения получается что если встретились
<prm1>aaa</prm1> и <prm1>aaa</prm1> в другом ноде то объединились в результате мне так и нада как сделать чтоб это объединение не происходило в других нодах, ибо в примере еще объединяет prm4...
...
Рейтинг: 0 / 0
07.11.2007, 14:14
    #34922005
SuSa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XML + XSL
Струдом со слов понимается что именно сделать надо..
Лучше приводить пример кода какой есть , какой надо, а какой не надо.
По словесному описанию следует примерно следующий вывод.
Необходимо написать условие при котором следует объединять значения нода , а при каком нет.
Условие может быть разным. Может быть по имени ноды, может быть по значению.
Дальнейшие разъеснения будут токо после предаставления кода
...
Рейтинг: 0 / 0
07.11.2007, 15:14
    #34922254
sashka304
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XML + XSL
обьединять нужно только значения первого нода prm1 все остальные ноды должны отображаться без обьединения...
немного не получается объяснить...
прикреленный файлы - как ненужно
...
Рейтинг: 0 / 0
07.11.2007, 15:14
    #34922258
sashka304
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XML + XSL
а вот так нужно:
...
Рейтинг: 0 / 0
07.11.2007, 16:03
    #34922496
ZanZibArgh
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XML + XSL
http://www.jenitennison.com/xslt/grouping/muenchian.html
...
Рейтинг: 0 / 0
07.11.2007, 17:09
    #34922911
sashka304
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XML + XSL
спасибо всем кто откликнулся
я тупой гамадрил :) всего-то нда было написать вместо звездочки имя поля
нада было не та писать:
Код: plaintext
<xsl:value-of select="count(following::*[.=current()])"/>
а так:
Код: plaintext
<xsl:value-of select="count(following::prm1[.=current()])"/>

какая-то трудная среда выдалась...
...
Рейтинг: 0 / 0
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / XML + XSL / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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