Гость
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / fo:block переносит строку, как бороться? / 3 сообщений из 3, страница 1 из 1
22.02.2009, 16:16
    #35831754
abc_da
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
fo:block переносит строку, как бороться?
Добрый день!
Делаю xsl-fo преобразование, столкнулся с проблемой: нужно разместить 2 элемента один за другим, пишу вот так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
<fo:flow flow-name="xsl-region-body">
    <xsl:for-each select="result/row">
        <fo:block>
            <xsl:call-template name="makeFront"/>
        </fo:block>
    </xsl:for-each>
</fo:flow>
В результате каждый fo:block начинается с новой строки. Наверняка у него должно быть какое-то property, чтобы этого избежать, но на w3schools я ничего подобного не нашел.
Если сделать так с fo:block невозможно, то есть еще возможность сделать fo:table примерно такого вида:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
<fo:table width="{$bodyWidth}{$units}" table-layout="fixed">
    <fo:table-column column-width="proportional-column-width(1)"/>
    <fo:table-column column-width="2mm"/>
    <fo:table-column column-width="proportional-column-width(1)"/>
    
    <fo:table-body>
<xsl:for-each select="result/row">
        <fo:table-row>
            <fo:table-cell><xsl:call-template name="makeFront"/><fo:block space-after="{$margin * 2}{$units}"/></fo:table-cell>
            <fo:table-cell><fo:block /></fo:table-cell>
            <fo:table-cell><xsl:call-template name="makeFront"/><fo:block space-after="{$margin * 2}{$units}"/></fo:table-cell>
        </fo:table-row>
</xsl:for-each>
    </fo:table-body>
</fo:table>

Но тут проблема: вышеприведенный код обрабатывает каждую ноду по 2 раза. Возможно ли в xsl:for-each сделать так, чтобы по нечетным вызовам выводилось
Код: plaintext
1.
2.
        <fo:table-row>
            <fo:table-cell><xsl:call-template name="makeFront"/><fo:block space-after="{$margin * 2}{$units}"/></fo:table-cell>
            <fo:table-cell><fo:block /></fo:table-cell>
а по четным
Код: plaintext
1.
2.
            <fo:table-cell><xsl:call-template name="makeFront"/><fo:block space-after="{$margin * 2}{$units}"/></fo:table-cell>
        </fo:table-row>
?

Пожалуйста, помогите довести хоть одну из идей до конца или, возможно, есть другое решение?
...
Рейтинг: 0 / 0
24.02.2009, 10:38
    #35833467
shieldHR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
fo:block переносит строку, как бороться?
abc_da, попробуй так...

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
<fo:flow flow-name="xsl-region-body">
        <fo:block>
    <xsl:for-each select="result/row">
            <xsl:call-template name="makeFront"/>
    </xsl:for-each>
        </fo:block>
</fo:flow>

...
Рейтинг: 0 / 0
25.02.2009, 01:28
    #35835504
abc_da
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
fo:block переносит строку, как бороться?
такой вариант пробовал, то же самое. Таблицы идут одна за другой.. :(
...
Рейтинг: 0 / 0
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / fo:block переносит строку, как бороться? / 3 сообщений из 3, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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