Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Как объединить ячейки в результирующем HTML из соседних строк при наложении на XML XSL? / 11 сообщений из 11, страница 1 из 1
16.11.2006, 16:31
    #34134020
акуз с корпоративной вечеринки
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как объединить ячейки в результирующем HTML из соседних строк при наложении на XML XSL?
Есть 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
16.11.2006, 17:22
    #34134310
maXmo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как объединить ячейки в результирующем HTML из соседних строк при наложении на XML XSL?
их сразу надо выводить объединёнными, либо стилями делай границы между ячейками невидимыми.
...
Рейтинг: 0 / 0
16.11.2006, 17:47
    #34134402
акуз с корпоративной вечеринки
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как объединить ячейки в результирующем HTML из соседних строк при наложении на XML XSL?
надо объединенными, невидимые граница неканают(
...
Рейтинг: 0 / 0
20.11.2006, 14:26
    #34140999
акуз с корпоративной вечеринки
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как объединить ячейки в результирующем HTML из соседних строк при наложении на XML 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.
<?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
20.11.2006, 16:22
    #34141487
maXmo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как объединить ячейки в результирующем HTML из соседних строк при наложении на XML XSL?
Код: plaintext
1.
2.
  <xsl:if test="@FGName=following-sibling::PriceLine[1]/@FGname">
           <xsl:text>ACHTUNG</xsl:text>
  </xsl:if>
...
Рейтинг: 0 / 0
20.11.2006, 16:39
    #34141556
акуз с корпоративной вечеринки
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как объединить ячейки в результирующем HTML из соседних строк при наложении на XML XSL?
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
20.11.2006, 16:53
    #34141609
maXmo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как объединить ячейки в результирующем HTML из соседних строк при наложении на XML XSL?
ах, да, в конце FGName вместо FGname
...
Рейтинг: 0 / 0
20.11.2006, 16:54
    #34141616
maXmo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как объединить ячейки в результирующем HTML из соседних строк при наложении на XML XSL?
только у тебя ахтунг между строками будет выводиться, что есть нехорошо
...
Рейтинг: 0 / 0
20.11.2006, 17:05
    #34141655
акуз с корпоративной вечеринки
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как объединить ячейки в результирующем HTML из соседних строк при наложении на XML XSL?
maXmoтолько у тебя ахтунг между строками будет выводиться, что есть нехорошо

Да пасибо! А ахтунг и не нужен - это для примера!
...
Рейтинг: 0 / 0
21.11.2006, 17:24
    #34144618
акуз с корпоративной вечеринки
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как объединить ячейки в результирующем HTML из соседних строк при наложении на XML XSL?
UP такое впринципе возможно в XSL?
...
Рейтинг: 0 / 0
21.11.2006, 19:33
    #34145023
акуз с корпоративной вечеринки
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как объединить ячейки в результирующем HTML из соседних строк при наложении на XML 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.
<?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
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Как объединить ячейки в результирующем HTML из соседних строк при наложении на XML XSL? / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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