Гость
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Выпадающий список в ячейке таблицы / 4 сообщений из 4, страница 1 из 1
12.05.2013, 22:54
    #38254551
Витяй1991
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выпадающий список в ячейке таблицы
Здравствуйте! У меня есть файл .xml, преобразованный с помощью xslt в html-таблицу и есть ещё один файл .xml, преобразующийся в выпадающий список. Подскажите, пожалуйста, как их объединить так, чтобы выпадающий список был в столбце таблицы в ее первой строке? вот так:



XML-файл с таблицей:
Код: 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.
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type='text/xsl' href='test.xsl'?>
<excelfile>
<row>
<link value="http://www.gismeteo.ru">text</link>
<text>text 21</text>
<link value="http://www.google.com">test</link>
</row>
<row>
<link></link>
<text>google</text>
<link></link>
</row>
<row>
<link>N/A</link>
<text></text>
<link>yandex</link>
</row>
<row>
<link value="www.google.com">google</link>
<link value=" http://www.yandex.ru">yandex</link>
<text>text 24</text>
<link value="www.rambler.ru">rambler</link>
</row>
</excelfile>



XSLT-преобразование для таблицы:
Код: 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.
<?xml version="1.0" encoding="ISO8859-1"?> 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
<xsl:template match="/"> 
<html> 
<body> 
<table width="100%"> 
  <xsl:for-each select="excelfile/row"> 
   <tr> 
<xsl:if test="(position() mod 2 = 1)">
<xsl:attribute name = "style">background:#CCCCCC;</xsl:attribute>
</xsl:if>	

<xsl:for-each select="text">
<td><xsl:value-of select="."/></td>
 </xsl:for-each>

    <td>
        <xsl:for-each select="link">
         <a href="{@value}">
           <xsl:value-of select="."/>          
           <xsl:if test="position() != last()">
	      <xsl:text>, </xsl:text> 
           </xsl:if>
         </a>
       </xsl:for-each>
    </td> 
   </tr>  
  </xsl:for-each> 
</table> 
</body> 
</html> 
</xsl:template> 
</xsl:stylesheet>




XML-файл с выпадающим списком:
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
<?xml version="1.0" encoding="windows-1251"?>
<?xml-stylesheet type='text/xsl' href='test2.xsl'?>
<root>
<categories>
<category id="1" title="aaaaa"></category>
<category id="2" title="bbbbb"></category>
<category id="3" title="cccc cc"></category>
<category id="4" title="ddd fffff"></category>
</categories>
</root>




XSLT-преобразование для выпадающего списка:
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:template match="categories">
    <select>
      <option value="0">All</option>
      <xsl:apply-templates select="//category"/>
    </select>
  </xsl:template>
  <xsl:template match="category">
    <option value="{@id}">
      <xsl:value-of select="@title"/>
    </option>
  </xsl:template>
</xsl:stylesheet>
...
Рейтинг: 0 / 0
13.05.2013, 09:51
    #38254788
Витяй1991
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выпадающий список в ячейке таблицы
сделал так, что теперь выпадающий список в каждой строке, а как оставить его только в одной строке?



код XML:

Код: 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.
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type='text/xsl' href='test.xsl'?>
<excelfile>

<row>
<link value="http://www.gismeteo.ru">text</link>
<text>text 21</text>
<link value="http://www.google.com">test</link>
</row>
<row>
<link value="www.google.com">google</link>
<link value=" http://www.yandex.ru">yandex</link>
<text>text 24</text>
<link value="www.rambler.ru">rambler</link>
</row>

  <droplist>
<list id="0" title="456"/>
<list id="1" title="456"/>
<list id="2" title="456"/>
<list id="3" title="456"/>
  </droplist>

</excelfile>




код XSL-файла:

Код: 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.
<?xml version="1.0" encoding="ISO8859-1"?> 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
<xsl:template match="/"> 
<html> 
<body> 
<table width="100%"> 
  <xsl:for-each select="excelfile/row"> 
   <tr> 
<xsl:if test="(position() mod 2 = 1)">
<xsl:attribute name = "style">background:#CCCCCC;</xsl:attribute>
</xsl:if>	

<xsl:for-each select="text">
<td><xsl:value-of select="."/></td>
 </xsl:for-each>
    <td>
        <xsl:for-each select="link">
         <a href="{@value}">
           <xsl:value-of select="."/>          
           <xsl:if test="position() != last()">
	      <xsl:text>, </xsl:text> 
           </xsl:if>
         </a>
       </xsl:for-each>
    </td>
 <td> 
 <select>
 <option value="0">All</option>
 <xsl:apply-templates select="//list"/>
 </select>
 </td>
           
   </tr>  
  </xsl:for-each> 
</table> 
</body> 
</html> 
</xsl:template> 
 <xsl:template match="list">
        <option value="{@id}">
            <xsl:value-of select="@title"/>
        </option>
    </xsl:template>
</xsl:stylesheet>
...
Рейтинг: 0 / 0
13.05.2013, 10:07
    #38254813
mhx
mhx
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выпадающий список в ячейке таблицы
Что-то типа
Код: 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.
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type='text/xsl' href='test.xsl'?>
<excelfile>
  <row>
    <link value="http://www.gismeteo.ru">text</link>
    <text>text 21</text>
    <link value="http://www.google.com">test</link>
    <categories>
      <category id="1" title="aaaaa"/>
      <category id="2" title="bbbbb"/>
      <category id="3" title="cccc cc"/>
      <category id="4" title="ddd fffff"/>
    </categories>
  </row>
  <row>
    <link/>
    <text>google</text>
    <link/>
  </row>
  <row>
    <link>N/A</link>
    <text/>
    <link>yandex</link>
  </row>
  <row>
    <link value="www.google.com">google</link>
    <link value=" http://www.yandex.ru">yandex</link>
    <text>text 24</text>
    <link value="www.rambler.ru">rambler</link>
  </row>
</excelfile>


Код: 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.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
  <xsl:template match="/">
    <html>
      <body>
        <table width="100%" border="0">
          <xsl:apply-templates/>
        </table>
      </body>
    </html>
  </xsl:template>
  
  <xsl:template match="row">
    <xsl:variable name="row_number">
      <xsl:number/>
    </xsl:variable>
    <tr>
      <xsl:if test="($row_number mod 2 = 1)">
        <xsl:attribute name = "style">background:#CCCCCC;</xsl:attribute>
      </xsl:if>
      <td>
        <xsl:value-of select="$row_number"/>
      </td>
      <td>
        <xsl:value-of select="text"/>
      </td>
      <td>
        <xsl:if test="count(categories)=0">
          <xsl:attribute name="colspan">2</xsl:attribute>
        </xsl:if>
        <xsl:apply-templates select="link"/>
      </td>
      <xsl:apply-templates select="categories"/>
    </tr>
  </xsl:template>
  
  <xsl:template match="link">
    <a href="{@value}">
      <xsl:value-of select="."/>
      <xsl:if test="position() != last()">
        <xsl:text>, </xsl:text>
      </xsl:if>
    </a>
  </xsl:template>
  
  <xsl:template match="categories">
    <td style="background-color:#ffffff">
      <select>
        <option value="0">All</option>
        <xsl:apply-templates />
      </select>
    </td>
  </xsl:template>
  
  <xsl:template match="category">
    <option value="{@id}">
      <xsl:value-of select="@title"/>
    </option>
  </xsl:template>
</xsl:stylesheet>
...
Рейтинг: 0 / 0
13.05.2013, 10:17
    #38254833
Витяй1991
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выпадающий список в ячейке таблицы
mhx,

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


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