Модераторы: diadiavova
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> xsl: вывод списка в два столбца 
V
    Опции темы
urix
  Дата 21.2.2006, 18:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 26.12.2005

Репутация: нет
Всего: 1



как реализовать в xsl вывод некоторого списка в два или более столбца (слева направа, сверху вниз):
Код

1 2
3 4
5 6
...

?

xml.xml, например:
Код

<?xml version = "1.0" ?>
<?xml-stylesheet type="text/xsl" href="xml.xsl" ?>
<editor_contacts>
    <editor>
        <name>Name1</name>
        <e_mail>[email protected]</e_mail>
    </editor>
    <editor>
        <name>Name2</name>
        <e_mail>[email protected]</e_mail>
    </editor>
    <editor>
        <name>Name3</name>
        <e_mail>[email protected]</e_mail>
    </editor>
    <editor>
        <name>Name4</name>
        <e_mail>[email protected]</e_mail>
    </editor>
    <editor>
        <name>Name5</name>
        <e_mail>[email protected]</e_mail>
    </editor>
</editor_contacts>


xml.xsl хотелось бы сделать так, но чтоб было правильно:
Код

<?xml version = "1.0" ?>
<xsl:stylesheet version="1.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  xmlns:fo="http://www.w3.org/1999/XSL/Format">
<xsl:template match="/">
<HTML>
<BODY>

<h1>Contacts</h1>
<table border="1">
<xsl:for-each select="editor_contacts/editor">
    <xsl:sort order="ascending" select="first_name"/>
    <xsl:if test="position() mod 2 != 0">
        <tr>
    </xsl:if>
        <td>
        <h2><i>Name: </i>
            <xsl:value-of select="name"/></h2>
        <p><i>E-Mail: </i>
            <xsl:value-of select="e_mail"/></p>
        </td>
        </tr>
    <xsl:if test="position() mod 2 = 0">
        </tr>
    </xsl:if>
</xsl:for-each>
</table>

</BODY>
</HTML>
</xsl:template>
</xsl:stylesheet>

PM MAIL   Вверх
urix
Дата 21.2.2006, 18:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 26.12.2005

Репутация: нет
Всего: 1



вопрос снимается. Решение уже нашёл:

Код

    <xsl:if test="position() mod 2 != 0">
        <tr>
        
        <td>
        <h2><i>Name: </i>
            <xsl:value-of select="name"/></h2>
        <p><i>E-Mail: </i>
            <xsl:value-of select="e_mail"/></p>
        </td>

        <xsl:if test="following-sibling::node()">
            <td>
            <h2><i>Name: </i>
                <xsl:value-of select="following-sibling::editor/name"/></h2>
            <p><i>E-Mail: </i>
                <xsl:value-of select="following-sibling::editor/e_mail"/></p>
            </td>
        </xsl:if>

        </tr>
    </xsl:if>

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "XML/XSLT"
diadiavova

Прежде чем опубликовать вопрос, попробуйте воспользоваться поиском - возможно тема уже поднималась.

Также рекомендуем Вам зайти в раздел FAQ ,раздел дополняется и, возможно, там вы увидите готовое решение.

Для ответов на часто задаваемые вопросы существует FAQ раздела. Новости можно публиковать в разделе новостей. Для статей так же есть специальный раздел

Желаем удачи в Вашем деле!


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, diadiavova.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | XML, XSL | Следующая тема »


 




[ Время генерации скрипта: 0.0425 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.