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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вывод данных с помощью вложенных for-each (XSL) 
:(
    Опции темы
guzzel20
  Дата 28.11.2015, 20:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Всем привет, очень нуждаюсь в вашей помощи!

У меня не получается вывести данные с помощью фильтрации нужным образом. В схеме у меня три элемента: Kafedry, который состоит из двух элементов Kafedra и Prepodavateli.
Нужно вывести все кафедры и под каждым список преподавателей этой кафедры. Данные элементы связаны полем id_kaf.
Вид должен быть такой:

Порядковый номер: 1
Название: Вычислительная техника
Заведующий: Иванов Иван Иванович
Телефон: 8422908765

Порядковый номер: 1
Фамилия, имя, отчество: Петров Пётр Петрович
Номер кафедры: 1
Степень: Доктор технических наук
Звание: Профессор
Телефон: 89098975634
Дата рождения: 1949-05-29

Порядковый номер: 2
Фамилия, имя, отчество: Сидоров Андрей Алексеевич
Номер кафедры: 1
Степень: Кандидат технических наук
Звание: Доцент
Телефон: 89086719201
Дата рождения: 1985-09-27

Порядковый номер: 2
Название: Измерительно-вычислительные комплексы
Заведующий: Алексеев Михаил Иванович
Телефон: 86746549876

И так далее.

Пробовала многими способами это сделать, но ничего не выходит. Вот например этот вариант (цикл в цикле): 
Код

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fn="http://www.w3.org/2005/xpath-functions">
    <xsl:output indent="yes"/>      
    <xsl:template match="Kafedry">
        <h3><span style="margin-left:35pt">Кафедры и преподаватели</span></h3>
        <xsl:for-each select="Kafedra" >
            <span style="margin-left:10pt"><span style="font-style:italic">Порядковый номер: </span></span>
            <span style="font-weight:bold"><xsl:value-of select="id_kaf"/><br/></span>
            <span style="margin-left:10pt"><span style="font-style:italic">Название: </span></span>
            <span style="font-weight:bold"><xsl:value-of select="name_kaf"/><br/></span>
            <span style="margin-left:10pt"><span style="font-style:italic">Заведующий: </span></span>
            <xsl:value-of select="zav_kaf"/><br/>
            <span style="margin-left:10pt"><span style="font-style:italic">Телефон: </span></span>
            <xsl:value-of select="telefon_kaf"/><br/>
            <span style="margin-left:10pt"><span style="font-style:italic">Почта: </span></span>
            <xsl:value-of select="pochta_kaf"/><br/><br/>
             <xsl:for-each select="../Prepodavateli[@id_kaf=preceding-sibling::Kafedra/@id_kaf]" >
                <span style="margin-left:10pt"><span style="font-style:italic">Порядковый номер: </span></span>
                <span style="font-weight:bold"><xsl:value-of select="id_prep"/><br/></span>
                <span style="margin-left:10pt"><span style="font-style:italic">Фамилия, имя, отчество: </span></span>
                <span style="font-weight:bold"><xsl:value-of select="name_prep"/><br/></span>
                <span style="margin-left:10pt"><span style="font-style:italic">Номер кафедры: </span></span>
                <xsl:value-of select="id_kaf"/><br/>
                <span style="margin-left:10pt"><span style="font-style:italic">Степень: </span></span>
                <xsl:value-of select="stepen_prep"/><br/>
                <span style="margin-left:10pt"><span style="font-style:italic">Звание: </span></span>
                <xsl:value-of select="zvanie_prep"/><br/>
                <span style="margin-left:10pt"><span style="font-style:italic">Телефон: </span></span>
                <xsl:value-of select="telefon_prep"/><br/>
                <span style="margin-left:10pt"><span style="font-style:italic">Дата рождения: </span></span>
                <xsl:value-of select="dataRozhd_prep"/><br/><br/>
            </xsl:for-each>
        </xsl:for-each>
    </xsl:template>
</xsl:stylesheet>


При таком варианте выводится только список кафедр.

Найдите, пожалуйста, ошибку или предложите другой вариант. Я никак не пойму, почему не правильно :(

P.S. Если нужно, могу прислать файлы.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "XML/XSLT"
diadiavova

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

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

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

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


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

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


 




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


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

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