powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Выпадающий список в ячейке таблицы
4 сообщений из 4, страница 1 из 1
Выпадающий список в ячейке таблицы
    #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
Выпадающий список в ячейке таблицы
    #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
Выпадающий список в ячейке таблицы
    #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
Выпадающий список в ячейке таблицы
    #38254833
Витяй1991
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mhx,

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


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