powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Как объединить ячейки в результирующем HTML из соседних строк при наложении на XML XSL?
11 сообщений из 11, страница 1 из 1
Как объединить ячейки в результирующем HTML из соседних строк при наложении на XML XSL?
    #34134020
Фотография акуз с корпоративной вечеринки
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть XML:
Код: plaintext
1.
2.
3.
4.
5.
6.
<Document FDate="2006-10-24T00:00:00">
<Client ClientName="Крыжополь"/>
<Info OrderPrintTime="16/11/2006 15:22:05" DocumentRate="1" DocumentNumber="1"/>
<PriceLine Quantity="1.000" SeriesName="01" FGName="Товар1" ProducerName="Произв1" StowageName="Склад1">
<PriceLine Quantity="1.000" SeriesName="02" FGName="Товар2" ProducerName="Произв2" StowageName="Склад2">
<PriceLine Quantity="1.000" SeriesName="03" FGName="Товар2" ProducerName="Произв2" StowageName="Склад2">
</Document>

Как получить HTML таблицу вида?:
Код: 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.
  <table width="100%" border="1" BorderColor="black" style="border-collapse: collapse;">
  <tr>
    <th width="20%">Место хранения</th>
    <th width="30%">Наименование</th>
    <th width="20%">Производитель</th>
    <th width="20%">Серии</th>
    <th width="10%">Кол-во</th>
  </tr>
    <tr>
      <td>Склад1</td>
      <td>Товар1</td>
      <td>Произв1</td>
      <td> 01 </td>
      <td> 1 </td>
    </tr>
    <tr>
      <td rowspan= 2 >Склад2</td>
      <td rowspan= 2 >Товар2</td>
      <td rowspan= 2 >Произв2</td>
      <td> 02 </td>
      <td> 1 </td>
    </tr>
    <tr>
      <td> 03 </td>
      <td> 1 </td>
    </tr>
  </table>
...
Рейтинг: 0 / 0
Как объединить ячейки в результирующем HTML из соседних строк при наложении на XML XSL?
    #34134310
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
их сразу надо выводить объединёнными, либо стилями делай границы между ячейками невидимыми.
...
Рейтинг: 0 / 0
Как объединить ячейки в результирующем HTML из соседних строк при наложении на XML XSL?
    #34134402
Фотография акуз с корпоративной вечеринки
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
надо объединенными, невидимые граница неканают(
...
Рейтинг: 0 / 0
Как объединить ячейки в результирующем HTML из соседних строк при наложении на XML XSL?
    #34140999
Фотография акуз с корпоративной вечеринки
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот 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.
<?xml version='1.0' encoding='Windows-1251'?>
<xsl:stylesheet version = '1.0'
	xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>

<xsl:template match="/">
  <p align="center"><b>
    <xsl:text> Дакуменд № </xsl:text>
    <xsl:apply-templates select="//Info"/>
  </b></p> 
  <xsl:value-of disable-output-escaping="yes" select="string('')"/>

  <table width="100%" border="1" BorderColor="black" style="border-collapse: collapse;">
  <tr>
    <th width="20%">Склат</th>
    <th width="30%">Тавар</th>
    <th width="20%">Праизводитель</th>
    <th width="20%">Серии</th>
    <th width="10%">Каличиство</th>
  </tr>
  <xsl:apply-templates select="//PriceLine"/>
  </table>

</xsl:template>

<xsl:template match="Info">
      <xsl:value-of select="@DocumentRate"/>_<xsl:value-of select="@DocumentNumber"/>
</xsl:template>


<xsl:template match="PriceLine">
  <xsl:if test="@FGName=/following::PriceLine/@FGname">
           <xsl:text>AHTUNG</xsl:text>
  </xsl:if>
  <tr>
    <td width="20%"><xsl:value-of select="@StowageName"/></td>
    <td width="30%"><xsl:value-of select="@FGName"/></td>
    <td width="20%"><xsl:value-of select="@ProducerName"/></td>
    <td width="20%"><xsl:value-of select="@SeriesName"/></td>
    <td width="10%"> </td>
  </tr>
</xsl:template>
     
</xsl:stylesheet>

А как пользоваться инструкцией FOLLOWING?
...
Рейтинг: 0 / 0
Как объединить ячейки в результирующем HTML из соседних строк при наложении на XML XSL?
    #34141487
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
  <xsl:if test="@FGName=following-sibling::PriceLine[1]/@FGname">
           <xsl:text>ACHTUNG</xsl:text>
  </xsl:if>
...
Рейтинг: 0 / 0
Как объединить ячейки в результирующем HTML из соседних строк при наложении на XML XSL?
    #34141556
Фотография акуз с корпоративной вечеринки
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maXmo
Код: plaintext
1.
2.
  <xsl:if test="@FGName=following-sibling::PriceLine[1]/@FGname">
           <xsl:text>ACHTUNG</xsl:text>
  </xsl:if>


НЕ работает, я там создал отдельную тему с примером...

http://www.sql.ru/forum/actualthread.aspx?tid=364317
...
Рейтинг: 0 / 0
Как объединить ячейки в результирующем HTML из соседних строк при наложении на XML XSL?
    #34141609
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ах, да, в конце FGName вместо FGname
...
Рейтинг: 0 / 0
Как объединить ячейки в результирующем HTML из соседних строк при наложении на XML XSL?
    #34141616
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
только у тебя ахтунг между строками будет выводиться, что есть нехорошо
...
Рейтинг: 0 / 0
Как объединить ячейки в результирующем HTML из соседних строк при наложении на XML XSL?
    #34141655
Фотография акуз с корпоративной вечеринки
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maXmoтолько у тебя ахтунг между строками будет выводиться, что есть нехорошо

Да пасибо! А ахтунг и не нужен - это для примера!
...
Рейтинг: 0 / 0
Как объединить ячейки в результирующем HTML из соседних строк при наложении на XML XSL?
    #34144618
Фотография акуз с корпоративной вечеринки
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
UP такое впринципе возможно в XSL?
...
Рейтинг: 0 / 0
Как объединить ячейки в результирующем HTML из соседних строк при наложении на XML XSL?
    #34145023
Фотография акуз с корпоративной вечеринки
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все - всем чмоке, получилось)

Код: 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.
<?xml version='1.0' encoding='Windows-1251'?>
<xsl:stylesheet version = '1.0'
	xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>

<xsl:decimal-format name="european" decimal-separator=',' grouping-separator=' ' />

<xsl:template match="/">
  <p align="center"><b>
    <xsl:text> Дакуменд № </xsl:text>
    <xsl:apply-templates select="//Info"/>
  </b></p> 
  <xsl:value-of disable-output-escaping="yes" select="string('
')"/>

  <table width="100%" border="1" BorderColor="black" style="border-collapse: collapse;">
  <tr>
    <th width="20%">Склат</th>
    <th width="30%">Тавар</th>
    <th width="20%">Праизводитель</th>
    <th width="20%">След тавар</th>
    <th width="10%">Каличиство</th>
  </tr>
  <xsl:apply-templates select="//PriceLine"/>
  </table>

</xsl:template>

<xsl:template match="Info">
      <xsl:value-of select="@DocumentRate"/>_<xsl:value-of select="@DocumentNumber"/>
</xsl:template>

<xsl:template match="PriceLine">

  <xsl:if test="position()=1 or @FGName!=preceding-sibling::PriceLine[1]/@FGName"> 

    <xsl:variable name="FGName" select="@FGName"/> 
    <tr>
      <td width="20%"><xsl:value-of select="@StowageName"/></td>
      <td width="30%"><xsl:value-of select="@FGName"/></td>
      <td width="20%"><xsl:value-of select="@ProducerName"/></td>

      <td>
      <table  width="100%" border="1" BorderColor="black" style="border-collapse: collapse;">
      
        <tr><td><xsl:value-of select="@SeriesName"/></td></tr>
        <xsl:for-each select="following-sibling::*">
        
          <xsl:if test="@FGName=$FGName"> 
            <tr><td><xsl:value-of select="@SeriesName"/></td></tr>
          </xsl:if> 

        </xsl:for-each> 

      </table>
      </td>

      <td width="10%"> </td>
    </tr>

  </xsl:if> 

</xsl:template>
     
</xsl:stylesheet>
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Как объединить ячейки в результирующем HTML из соседних строк при наложении на XML XSL?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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