powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / XSLT преобразование
10 сообщений из 10, страница 1 из 1
XSLT преобразование
    #36091070
Махач
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте.
Я первый раз пишу шаблон xsl. Не могли бы вы подсказать в чём ошибка в 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.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
<?xml version="1.0" encoding="windows-1251" ?>
<html xsl:version="1.0"
     xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <body>
    
<xsl:for-each select="Workbook/Koll">


	<table width="3093" border="1">
	    <tr align="center">
 		<th>Производитель vendor</th>
		<th>Модель model</th>
		<th>Прошивка firmware</th>
		<th>Статус интеграции</th>
        <th>Кол-во каналов</th>
        <th>Компрессия</th>
        <th>max разрешение</th>
        <th>mid разрешение</th>
        <th>min разрешение</th>
        <th>Звук</th>
        <th>PTZ</th>
        <th>Лучи</th>
        <th>Реле</th>
        <th>Ограничения FPS</th>
        <th>Настройки</th>
        <th>Замечания по интеграции</th>
 	    </tr>
        
        
        
	    <xsl:for-each select="Workbook/Koll/Row">
        
		<tr>
       
        			<td align="center" nowrap="nowrap">
                    
			<xsl:value-of select="Data[1]"/>
		    </td>
          
		   			<td align="center" nowrap="nowrap">
            <xsl:value-of select="Data[2]"/>
		    </td>
         			    <td align="center" nowrap="nowrap">
            <xsl:value-of select="Data[3]"/>
		    </td>
            		    <td align="center" nowrap="nowrap">
            <xsl:value-of select="Data[4]"/>
		    </td>
            		    <td align="center" nowrap="nowrap">
            <xsl:value-of select="Data[5]"/>
		    </td>
            		    <td align="center" nowrap="nowrap">
            <xsl:value-of select="Data[6]"/>
		    </td>
            		    <td align="center" nowrap="nowrap">
            <xsl:value-of select="Data[7]"/>
		    </td>
            		    <td align="center" nowrap="nowrap">
            <xsl:value-of select="Data[8]"/>
		    </td>
            		    <td align="center" nowrap="nowrap">
            <xsl:value-of select="Data[9]"/>
		    </td>
            		    <td align="center" nowrap="nowrap">
            <xsl:value-of select="Data[10]"/>
		    </td>
            		    <td align="center" nowrap="nowrap">
            <xsl:value-of select="Data[11]"/>
		    </td>
            		    <td align="center" nowrap="nowrap">
            <xsl:value-of select="Data[12]"/>
		    </td>
            		    <td align="center" nowrap="nowrap">
            <xsl:value-of select="Data[13]"/>
		    </td>
            		    <td align="center" nowrap="nowrap">
            <xsl:value-of select="Data[14]"/>
		    </td>
            		    <td align="center" nowrap="nowrap">
            <xsl:value-of select="Data[15]"/>
		    </td>
            			<td textalign="right" nowrap="nowrap">
       
            	<xsl:value-of select="Data[16]"/>
		    </td> 
		</tr>
	      </xsl:for-each>
	</table>


  </xsl:for-each>
    </body>
</html>
Пример 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.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
<Workbook>
<Koll>
   <Row>  
  	<Data>ACTi</Data>
    <Data>ACTi ACD- 2100 </Data>
    <Data>A1D- 220 -V3. 05 . 05 -AC</Data>
    <Data>Интегрировано</Data>
    <Data> 1 </Data>
    <Data>MPEG4</Data>
    <Data>720х576(PAL)</Data>
    <Data>640х480(PAL)</Data>
    <Data>352х288(PAL)</Data>
    <Data>Интегрировано</Data>
    <Data>Интегрировано</Data>
    <Data>Интегрировано</Data>
    <Data>Интегрировано</Data>
    <Data> 25 (PAL) fps</Data>
    <Data>Яркость, Насыщенность цвета, Контраст</Data>
	<Data></Data>
   </Row>
</Koll>
<Koll>
<Row>    
	<Data>StreamLabs</Data>
    <Data>ACTi ACM-1101P</Data>
    <Data>A1D- 220 -V3. 03 . 07 -AC</Data>
    <Data>Интегрировано</Data>
    <Data> 1 </Data>
    <Data>MPEG4</Data>
    <Data>640х480(PAL)</Data>
    <Data>640х480(PAL)</Data>
    <Data>352х288(PAL)</Data>
    <Data>Интегрировано</Data>
    <Data>Нет функционала</Data>
    <Data>Нет функционала</Data>
    <Data>Нет функционала</Data>
    <Data> 25 (PAL) fps</Data>
    <Data>Цвет, Яркость, Насыщенность цвета, Контраст</Data>
	<Data></Data>  
</Row>
</Koll>
<Koll>
<Row>    <Data>Sony</Data>
    <Data>ACTi ACM-1311P</Data>
    <Data>A1D- 220 -V3. 08 . 08 -AC</Data>
    <Data>Интегрировано</Data>
    <Data> 1 </Data>
    <Data>MJPEG, MPEG4</Data>
    <Data>720x576(MJPEG)/720x576(MPEG4)</Data>
    <Data>640х480(MJPEG)/640х480(MPEG4)</Data>
    <Data>352х288(MJPEG)/352х288(MPEG4)</Data>
    <Data>Интегрировано</Data>
    <Data>Нет функционала</Data>
    <Data>Нет функционала</Data>
    <Data>Нет функционала</Data>
    <Data> 25 (PAL)/ 30 (NTSC) fps</Data>
    <Data>Цвет, Яркость, Насыщенность цвета, Контраст</Data>
<Data></Data>  
</Row>
<Koll>
</Koll>
<Row>    <Data>Panasonic</Data>
    <Data>ACTi ACM-1431P </Data>
    <Data>A1D- 220 -V3. 03 . 07 -AC</Data>
    <Data>Интегрировано</Data>
    <Data> 1 </Data>
    <Data>MPEG4</Data>
    <Data>720х576(PAL)/720х480(NTSC)</Data>
    <Data>640х480(PAL)/640х480(NTSC)</Data>
    <Data>352х288(PAL)/352х240(NTSC)</Data>
    <Data>Интегрировано</Data>
    <Data>Нет функционала</Data>
    <Data>Нет функционала</Data>
    <Data>Нет функционала</Data>
    <Data> 25 (PAL)/ 30 (NTSC) fps</Data>
    <Data>Яркость, Насыщенность цвета, Контраст</Data>
<Data></Data>   
</Row>
<Koll>
Суть в том, чтобы выводилось для каждого производителя своя таблица.
Т.е. 4 таблицы: Для ACTi, StreamLabs, Sony, Panasonic
Вывести всё в одну табличку у меня получается, а как только добавляю ещё один цикл For-each (верхний) Он у меня выводит шабки таблиц (4 штуки), а внутренность не выводит
Помогите плиз
...
Рейтинг: 0 / 0
XSLT преобразование
    #36091325
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
у тебя документ вообще неправильный, смотри за тегами Koll
...
Рейтинг: 0 / 0
XSLT преобразование
    #36091340
Махач
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maXmoу тебя документ вообще неправильный, смотри за тегами Koll
Да сорри Просто документ намного больше я выдрал часть и Koll-ы дописал, описался с Koll-ами всё нормально в оригинале
...
Рейтинг: 0 / 0
XSLT преобразование
    #36091380
dr-Wicked
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуй замени
Код: plaintext
<xsl:for-each select="Workbook/Koll/Row">
на
Код: plaintext
<xsl:for-each select="Row">
...
Рейтинг: 0 / 0
XSLT преобразование
    #36091399
Махач
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
dr-WickedПопробуй замени
Код: plaintext
<xsl:for-each select="Workbook/Koll/Row">
на
Код: plaintext
<xsl:for-each select="Row">


Получилось. Спасибо :-)
...
Рейтинг: 0 / 0
XSLT преобразование
    #36091893
Махач
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ещё один вопросик...
Хочу вывести производителей в список и при помощи js выводить таблицы.
Дописал к шаблону скрипт, только вышла загвоздка... Он всё время открывает 1-ую таблицу
Прикладываю скрин, как получилось.
А вот что я дописал в 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.
<?xml version="1.0" encoding="windows-1251" ?>
<html xsl:version="1.0"
     xmlns:xsl="http://www.w3.org/1999/XSL/Transform">


    <body>
    

<xsl:for-each select="Workbook/Koll">



 <div style="clear: both;"></div>
 
<h3 onclick="displayBlock('1');"><xsl:value-of select="Row/Data[1]"/></h3>

<div class="divhide" id="1" style="display: none;">

 
	<table width="3093" border="1">
	    <tr align="center">
 		<th>Производитель vendor</th>
		<th>Модель model</th>
		<th>Прошивка firmware</th>
		<th>Статус интеграции</th>
        <th>Кол-во каналов</th>
        <th>Компрессия</th>
        <th>max разрешение</th>
        <th>mid разрешение</th>
..............................
А вот что приписал в php:
Код: 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.
<script language="javascript">
   

function displayBlock(id){
	var block=document.getElementById(id);
	if(block.style.display=='none'){
		block.style.display='block';
		}else{
		block.style.display='none';
	}
}

var status = 'off';

function displayBlockON(id){
	var block=document.getElementById(id);
	block.style.display='block';
}

function displayBlockOFF(id){
	var block=document.getElementById(id);
	block.style.display='none';
}

function displayALL() {
if (status == 'off') {
displayBlockON('1');
displayBlockON('2');
displayBlockON('3');
displayBlockON('4');
displayBlockON('5');
displayBlockON('6');
displayBlockON('7');
displayBlockON('8');
displayBlockON('9');
displayBlockON('10');
displayBlockON('11');
displayBlockON('12');
status = 'on';
}
else {
displayBlockOFF('1');
displayBlockOFF('a');
displayBlockOFF('3');
displayBlockOFF('4');
displayBlockOFF('5');
displayBlockOFF('6');
displayBlockOFF('7');
displayBlockOFF('8');
displayBlockOFF('9');
displayBlockOFF('10');
displayBlockOFF('11');
displayBlockOFF('12');
status = 'off';}
}


</script>

Я так понимаю что нужно прописать вместо этого (выделено красным цветом) переменную которая меняется в течении чтения XML только вот пытаюсь это сделать, но никак
Код: plaintext
1.
2.
3.
4.
 <div style="clear: both;"></div>
 
<h3 onclick="displayBlock('[color=red]1[/color]');"><xsl:value-of select="Row/Data[1]"/></h3>
[color=red][/color]
<div class="divhide" id="[color=red]1[/color]" style="display: none;">


Помогите пожалуйста
...
Рейтинг: 0 / 0
XSLT преобразование
    #36095484
Махач
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Больше не надо. Нашёл решение проблемы...Спасибо..
Если кому понадобится, вот как я сделал
В XSL шаблон дописал:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
	<body>
    	<xsl:for-each select="Workbook/Koll">
*********************************************
        <div class="spoiler-wrap">	
        	<div class="spoiler-head folded clickable">
 				<h3><xsl:value-of select="Row/Data[1]"/></h3></div>
				<div class="spoiler-body">
*********************************************
				<table width="3093" border="1">
	    			<tr align="center">
...........................................................................
В php добавил библиотеку jQuery, а также добавил js
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
<link href="spoiler.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="jquery-1.3.2.js"></script>
<SCRIPT type="text/javascript">
function initSpoilers(context)
{
var context = context || 'body';
$('div.spoiler-head', $(context))
.click(function(){
$(this).toggleClass('unfolded');
$(this).next('div.spoiler-body').slideToggle('fast');
})
;
}

$(document).ready(function(){
initSpoilers('body');
});
</script>

И прикрутил css
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
@charset "utf-8";
/* CSS Document */
.spoiler-wrap {
clear: both;
}
.spoiler-body {
display: none;
}
.clickable {
cursor: pointer;
}
.folded {
display: block;
}
.unfolded {
display: block;
}



Всё отлично работает... Всем удачи =)
...
Рейтинг: 0 / 0
XSLT преобразование
    #36096823
Kentavr77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!
я новичoк в xsl- шаблонах

Помогите создать шаблон xsl.
Имеем входной xml файл со структурой
<Root>
<THEME NAME="T1" Priority ="4" sumVes="0">
<FILTER NAME="F1" VES="50" sumVES="0">
<WORD NAME="W1" VES="50" />
<WORD NAME="W2" VES="50" />
</FILTER>
<FILTER NAME="F2" VES="50" sumVES="0">
<WORD NAME="W3" VES="50" />
<WORD NAME="W4" VES="50" />
</FILTER>
</THEME>

<THEME NAME="T2" Priority ="10">
<FILTER NAME="F3" VES="50" sumVES="0">
<WORD NAME="W6" VES="50" />
<WORD NAME="W7" VES="50" />
</FILTER>
<FILTER NAME="F4" VES="50" sumVES="0">
<WORD NAME="W8" VES="50" />
<WORD NAME="W9" VES="50" />
</FILTER>
</THEME>

THEME NAME="T5" Priority ="10" sumvES="0">
<FILTER NAME="F3" VES="50" sumVES="0">
</FILTER>
</THEME>
<Root>


Выходная структура xml
<Root>
<THEME NAME="T2" Priority ="10">
<FILTER NAME="F3" VES="50" sumVES="100">
<WORD NAME="W6" VES="50" />
<WORD NAME="W7" VES="50" />
</FILTER>
<FILTER NAME="F4" VES="50" sumVES="100">
<WORD NAME="W8" VES="50" />
<WORD NAME="W9" VES="50" />
</FILTER>
</THEME>

<THEME NAME="T1" Priority ="4" sumVes="100">
<FILTER NAME="F1" VES="30" sumVES="100">
<WORD NAME="W1" VES="50" />
<WORD NAME="W2" VES="50" />
</FILTER>
<FILTER NAME="F2" VES="70" sumVES="100">
<WORD NAME="W3" VES="50" />
<WORD NAME="W4" VES="50" />
</FILTER>
</THEME>

<Root>
Примечание: sumVES Filtra определяется суммой sumVes Word
sumVES THEME определяется суммой sumVes Filtra
Нужна сортировка по Priority THEME
...
Рейтинг: 0 / 0
XSLT преобразование
    #36097040
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В чем проблема? Как пробовали? Что не получилось?

Ну или $10 и преобразование я Вам напишу.

С уважением, Vasilisk
...
Рейтинг: 0 / 0
XSLT преобразование
    #36097492
Kentavr77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Проблема в:
1. определении sumVes Filter - как sumVes WORD, и sumVes THEME - как sumVes Filter
2. уничтожении THEME, где отсутствуют WORD или sumVes THEME <100.

Рассчитываю исключительно на Вашу бескорыстность и програмистскую солидарность.

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


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