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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> for each + аттрибуты, аттрибуты на разных уровнях в цикле 
:(
    Опции темы
cra6
Дата 25.2.2008, 18:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Код

<owner alias="p5com" id="20">
    <exp-resp err="" id="1" obalias="usb" obtype="gate">
      <exp-seria-resp alias="s30" count="2" id="1">
        <exp-trans id="410" price="3000" serial="7000" secret="4225"
                   expdate="2004/07/31">
          <exp-attr num="1" name="Кількість" value="10.5"/>
          <exp-attr num="2" name="Послуга дійсна (днів)" value="30"/>
        </exp-trans>
        <exp-trans id="411" price="3000" serial="7001" secret="1285"
                   expdate="2004/07/31">
          <exp-attr num="1" name="Кількість" value="10.5"/>
          <exp-attr num="2" name="Послуга дійсна (днів)" value="30"/>
        </exp-trans>
      </exp-seria-resp>
      <exp-seria-resp alias="s60" count="2" id="2">
        <exp-trans id="419" price="6000" serial="7002" secret="9423"
                   expdate="2004/07/31">
          <exp-attr num="1" name="Кількість" value="21"/>
          <exp-attr num="2" name="Послуга дійсна (днів)" value="60"/>
        </exp-trans>
        <exp-trans id="421" price="6000" serial="7003" secret="2495"
                   expdate="2004/07/31">
          <exp-attr num="1" name="Кількість" value="21"/>
          <exp-attr num="2" name="Послуга дійсна (днів)" value="60"/>
        </exp-trans>
      </exp-seria-resp>
    </exp-resp>
  </owner>


как можна циклами для каждого exp-seria-resp вывести его аттрибуты + атрибуты вложеного exp-trans и exp-attr num?спасибо
Пытаюсь как то вот так но выводятся все exp-trans а не те что надо.
Код

<?xml version="1.0" encoding="WINDOWS-1251" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<xsl:template match="/">
<table border="1">
<tr bgcolor="#CCCCCC">
<td align="center"><strong>Тип</strong></td>
<td align="center"><strong>ID</strong></td>
<td align="center"><strong>Цена</strong></td>
</tr>
<xsl:for-each select="//ds-ev/owner/exp-resp/exp-seria-resp">
<td><xsl:value-of select="@alias"/></td>
</xsl:for-each>


<xsl:for-each select="//exp-trans">

<tr bgcolor="#F5F5F5">

<td><xsl:value-of select="@id"/></td>
<td><xsl:value-of select="@price"/></td>
<td><xsl:value-of select="@serial"/></td>
<td><xsl:value-of select="@secret"/></td>
<td><xsl:value-of select="@expdate"/></td>
<td><xsl:value-of select="//exp-attr/@value"/></td>

</tr>


</xsl:for-each>
</table>
</xsl:template>
</xsl:stylesheet>





PM MAIL   Вверх
mishaSL
Дата 27.2.2008, 16:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1046
Регистрация: 10.1.2007
Где: Санкт-Петербург

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



cra6, вот накидал тебе примерно XSL файл, который должен быть. Пользуйся на здоровие, если что не понятно спрашивай.
Код

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<table border="1">
<tr bgcolor="#CCCCCC">
<td align="center"><strong>Атрибут id</strong></td>
<td align="center"><strong>Атрибут alias</strong></td>
<td align="center"><strong>Атрибут count</strong></td>
<td align="center"><strong>Подробное описание, т.е. exp-trans</strong></td>
</tr>
    <xsl:apply-templates select="owner/exp-resp/exp-seria-resp"/>
</table>
</xsl:template>

<xsl:template match="owner/exp-resp/exp-seria-resp">
    <tr>
        <td><xsl:value-of select="@id" disable-output-espaping="yes" /></td>
        <td><xsl:value-of select="@alias" disable-output-espaping="yes" /></td>
        <td><xsl:value-of select="@count" disable-output-espaping="yes" /></td>
        <td><xsl:apply-templates select="exp-trans"/></td>
    </tr>
</xsl:template>
<xsl:template match="exp-trans">
    <div style="margin-bottom:25px;">
        id:<xsl:value-of select="@id" disable-output-espaping="yes" /><br />
        price:<xsl:value-of select="@price" disable-output-espaping="yes" /><br />
        serial:<xsl:value-of select="@serial" disable-output-espaping="yes" /><br />
        secret:<xsl:value-of select="@secret" disable-output-espaping="yes" /><br />
        expdate:<xsl:value-of select="@expdate" disable-output-espaping="yes" />
        <p>Подробнее, т.е. exp-attr:<br />
        <xsl:apply-templates select="exp-attr" />
        </p>
    </div>
</xsl:template>
<xsl:template match="exp-attr">
    <xsl:value-of select="@num" disable-output-espaping="yes" />. <xsl:value-of select="@name" disable-output-espaping="yes" /> - <xsl:value-of select="@value" disable-output-espaping="yes" /><br />
</xsl:template>


</xsl:stylesheet>




--------------------
Лучший способ научиться программированию - это посмотреть как это делают другие...
PM MAIL   Вверх
cra6
Дата 3.3.2008, 11:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Спасибо, возникло несколько вопросов
Что такое   disable-output-espaping="yes" ? На него ругается?
//Недопустимый атрибут "disable-output-espaping" для "xsl:value-of". 


Тут я так понял всё по шаблонам.И всё таки интересно реально ли сделать через foreach?Или это нецелесообразно?





Это сообщение отредактировал(а) cra6 - 3.3.2008, 11:18
PM MAIL   Вверх
mishaSL
Дата 3.3.2008, 13:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1046
Регистрация: 10.1.2007
Где: Санкт-Петербург

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



Цитата(cra6 @  3.3.2008,  11:16 Найти цитируемый пост)
//Недопустимый атрибут "disable-output-espaping" для "xsl:value-of".

Сори надо: disable-output-escaping, посмотреть описание можно к примеру здесь


Цитата(cra6 @  3.3.2008,  11:16 Найти цитируемый пост)
Тут я так понял всё по шаблонам.И всё таки интересно реально ли сделать через foreach?Или это нецелесообразно?

Сделать то можно конечно, но я думаю это будет не рационально.


--------------------
Лучший способ научиться программированию - это посмотреть как это делают другие...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "XML/XSLT"
diadiavova

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

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

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

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


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

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


 




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


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

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