Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > XML, XSL > выборка


Автор: Samotnik 25.3.2007, 20:54
Добрый день!
У меня к вам вопрос.
Зачит суть такова:
У меня есть таблица с данными об автомобилях, мне нужно вывести  на экран машины у кот. год выпуска больше 2000.
Т.е. нужно вывести на экран значения, больше заданного, а остальные не должны быть видны!
Помогите плз.

Автор: batigoal 26.3.2007, 12:38
Что понимается под "таблицей"?

Автор: Samotnik 27.3.2007, 22:18
Ну значит так.
Проблема следующая:
У меня есть база(в виде таблицы) написанная в xml, xsl естестно. В ней хранятся данные об автомобилях: цвет, количество, год выпуска, и т.д.(не суть важно).
Так вот вопрос:
Мне нужно ,чтобы при запуске инет експлорера показывались данные об автомоблях у кот. год выпуска выше 2000, а те что ниже 2000 не должны быть видны вообще!!
Я что-то слышал об
Код

<xsl:for-each select="...">

или
Код

<xsl:for-each if ..>

я пробывал юзать это ,но ничего не получается, машины кот. были выпущены до 2000 года все равно видны и не убираются.
Подскажите плз как правильно ето писать, и вообще правильно ли это в принципе ??

Автор: SelenIT 28.3.2007, 01:06
Samotnik, по идее одного if-а хватит...
Код

<?xml version="1.0" encoding="utf-8" ?>
<?xml-stylesheet type="text/xsl" href="cars.xsl"?>
<xml>
    <car>
        <firm>Cadillac</firm>
        <year>2001</year>
    </car>
    <car>
        <firm>Ford</firm>
        <year>1998</year>
    </car>
    <car>
        <firm>Toyota</firm>
        <year>2003</year>
    </car>
    <car>
        <firm>Lada</firm>
        <year>1979</year>
    </car>
</xml>


cars.xsl
Код

<xsl:stylesheet version = '1.0'
     xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>
<xsl:output method="html" encoding="utf-8" indent="no"/>

<xsl:template match="car">
     <xsl:if test="./year &gt; 2000">
          <p><xsl:value-of select="./firm"/> (<xsl:value-of select="./year"/>)</p>
     </xsl:if>
</xsl:template>

</xsl:stylesheet>


P.S. по мотивам примера http://raleigh.ru/XML/XSLTutorial/28.htm, их там масса!

Автор: Samotnik 29.3.2007, 19:25
2 SelenIT
Спасибоньки разобрался!!!!!
Все работает просто отличнейше!!!!!!!!

Автор: Alx 15.4.2007, 11:19
Цитата(SelenIT @  28.3.2007,  01:06 Найти цитируемый пост)
     <xsl:if test="./year &gt; 2000">

а почему &gt;? у меня работает и с ">" и ошибки не вызывает..

Автор: batigoal 15.4.2007, 22:55
Цитата(Alx @  15.4.2007,  12:19 Найти цитируемый пост)
а почему &gt;? у меня работает и с ">" и ошибки не вызывает.. 

По правилам валидности всё-таки должен быть $gt;

Автор: Alx 15.4.2007, 23:47
ок, хотя выглядит глупо smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)