powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / сквозной XSL count()
13 сообщений из 13, страница 1 из 1
сквозной XSL count()
    #38610339
coliator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!
Есть вот такое преобразование
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
<xsl:for-each select="/collection/cd">
 <xsl:if test="genre/@name='jazz'">
  <div>
   <xsl:value-of select="@artist"/>
   <xsl:text> — </xsl:text>
   <xsl:value-of select="count(genre[@name='pop']/)"/>
  </div>
 </xsl:if>
</xsl:for-each>



Всё хорошо, работает, но нужно чтобы на выходе было не так
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
<html><body>
<div>Стас Михайлов — 6</div>
<div>Поющие трусы — 5</div>
<div>Жанна Фриске — 4</div>
<div>Стас Михайлов — 5</div>
<div>Группа Губы — 4</div>
<div>Филипп Киркоров — 4</div>
<div>Жанна Фриске — 3</div>
</body></html>



а вот так
Код: html
1.
2.
3.
4.
5.
6.
7.
<html><body>
<div>Стас Михайлов*—*11</div>
<div>Поющие трусы*—*5</div>
<div>Жанна Фриске*—*7</div>
<div>Группа Губы*—*4</div>
<div>Филипп Киркоров*—*4</div>
</body></html>



Или такое лучше через apply-templates делать?
...
Рейтинг: 0 / 0
сквозной XSL count()
    #38610350
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
coliator,

Пример XML покажите, а то возникают всякие разные вопросы
...
Рейтинг: 0 / 0
сквозной XSL count()
    #38610370
coliator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
_Vasilisk_,
Вобщем-то не суть важно что за данные, но структура такова
Код: xml
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.
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="222.xsl" type="text/xsl"?>
<collection>
	<cd name="Стас Михайлов">
		<genre name="pop">
			<track name="AAA"/>
			<track name="BBB"/>
			<track name="CCC"/>
			<track name="DDD"/>
			<track name="EEE"/>
			<track name="FFF"/>
		</genre>
		<genre name="ska">
			<track name="AAAA"/>
			<track name="BBBB"/>
		</genre>
		<genre name="jazz">
			<track name="AA"/>
			<track name="BB"/>
		</genre>
		<genre name="classic">
			<track name="JJJ"/>
			<track name="LLL"/>
		</genre>
	</cd>
	<cd name="Жанна Фриске">
		<genre name="pop">
			<track name="KKK"/>
			<track name="PPP"/>
			<track name="GGG"/>
			<track name="HHH"/>
			<track name="YYY"/>
		</genre>
		<genre name="classic">
			<track name="TTT"/>
			<track name="III"/>
		</genre>
		<genre name="jazz">
			<track name="WWW"/>
		</genre>
		<genre name="ska">
			<track name="SSS"/>
		</genre>
	</cd>
</collection>
...
Рейтинг: 0 / 0
сквозной XSL count()
    #38610609
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
coliator,

И, что нужно подсчитать?
...
Рейтинг: 0 / 0
сквозной XSL count()
    #38610624
Фотография volodin661
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
coliatorИли такое лучше через apply-templates делать?


ДА.
...
Рейтинг: 0 / 0
сквозной XSL count()
    #38610833
coliator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
_Vasilisk_,
Вывести количество треков в жанре "поп" по каждому исполнителю. При этом на выходе названия исполнителей повторяться не должны (то есть кол-во треков у одного повторяющегося по всему XML исполнителю должно суммироваться). Вангую что это делается XPath'ом и apply-templates'ом, но вот как - не могу сообразить.
...
Рейтинг: 0 / 0
сквозной XSL count()
    #38611258
petalvik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
coliator,

приведённый xslt никак не подходит к приведённому xml. Так что уточни либо то, либо другое.
Неужто пихайлов исполняет и джаз, и классику?
Если xml правильный, то не понятно, что нужно посчитать: каждый исполнитель в одном экземпляре, достаточно просто вывести количество попсовых песен.
...
Рейтинг: 0 / 0
сквозной XSL count()
    #38611453
coliator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
petalvik,
не хотел я светить в инете учебный материал, ну да ладно.. сделаю хотя бы так (надеюсь это не противоречит правилам форума):
вот XML http://pastebin.com/J97cTCGX
вот мой XSLT http://pastebin.com/QKP2B8B8 , который дает вот такой вывод
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
<html><body>
<div>Карусель — 6</div>
<div>Пятёрочка — 5</div>
<div>Лента — 4</div>
<div>Карусель — 5</div>
<div>Метро — 4</div>
<div>ОКей — 4</div>
<div>Лента — 3</div>
</body></html>


а мне надо вот такой
Код: html
1.
2.
3.
4.
5.
6.
7.
<html><body>
<div>Карусель — 11</div>
<div>Пятёрочка — 5</div>
<div>Лента — 7</div>
<div>Метро — 4</div>
<div>ОКей — 4</div>
</body></html>
...
Рейтинг: 0 / 0
сквозной XSL count()
    #38611597
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
<xsl:template match="/shops">
  <html>
    <body>
      <xsl:apply-templates match="shop"/>
    </body>
  </html>
</xsl:template>

<xsl:template match="shop">
  <xsl:if test="not(preceding-sibling::shop[@name = current()/@name])">
    <div>
      <xsl:value-of select="concat(@name, ' - ', count(../shop[@name = current()/@name]/department[@name= '...']/product))"
    </div>
  </xsl:if>
</xsl:template>
...
Рейтинг: 0 / 0
сквозной XSL count()
    #38612494
coliator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
_Vasilisk_,

где-то на синтаксис ругается в самой длинной строке, пока не могу понять где, но мне кажется кавычек где-то не хватает
...
Рейтинг: 0 / 0
сквозной XSL count()
    #38612508
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
/product))"

тег не закрыт же
...
Рейтинг: 0 / 0
сквозной XSL count()
    #38612522
coliator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Antonariy,

точно)))
...
Рейтинг: 0 / 0
сквозной XSL count()
    #38612537
coliator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
_Vasilisk_,

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


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