Гость
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / XSLT преобразование / 10 сообщений из 10, страница 1 из 1
15.07.2009, 13:20
    #36091070
Махач
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XSLT преобразование
Здравствуйте.
Я первый раз пишу шаблон 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
15.07.2009, 14:46
    #36091325
maXmo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XSLT преобразование
у тебя документ вообще неправильный, смотри за тегами Koll
...
Рейтинг: 0 / 0
15.07.2009, 14:51
    #36091340
Махач
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XSLT преобразование
maXmoу тебя документ вообще неправильный, смотри за тегами Koll
Да сорри Просто документ намного больше я выдрал часть и Koll-ы дописал, описался с Koll-ами всё нормально в оригинале
...
Рейтинг: 0 / 0
15.07.2009, 15:00
    #36091380
dr-Wicked
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XSLT преобразование
Попробуй замени
Код: plaintext
<xsl:for-each select="Workbook/Koll/Row">
на
Код: plaintext
<xsl:for-each select="Row">
...
Рейтинг: 0 / 0
15.07.2009, 15:07
    #36091399
Махач
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XSLT преобразование
dr-WickedПопробуй замени
Код: plaintext
<xsl:for-each select="Workbook/Koll/Row">
на
Код: plaintext
<xsl:for-each select="Row">


Получилось. Спасибо :-)
...
Рейтинг: 0 / 0
15.07.2009, 17:55
    #36091893
Махач
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XSLT преобразование
ещё один вопросик...
Хочу вывести производителей в список и при помощи 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
17.07.2009, 13:15
    #36095484
Махач
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XSLT преобразование
Больше не надо. Нашёл решение проблемы...Спасибо..
Если кому понадобится, вот как я сделал
В 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
18.07.2009, 13:57
    #36096823
Kentavr77
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XSLT преобразование
Здравствуйте!
я нович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
18.07.2009, 20:58
    #36097040
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XSLT преобразование
В чем проблема? Как пробовали? Что не получилось?

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

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

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

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


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