| Новости | FAQ | Авторы | Документация | В действии | Библиотека |
| Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
G_Z 26.07.2004 11:35 / 26.07.2004 11:37
У меня создаётся стойкое впечатление, что я верблюд.<?xml version="1.0" encoding="WINDOWS-1251"?> <tree> <section id="1" parental_id="0" name="Главная" title="" url="/eng/" subin="1" active="0"> <section id="2" parental_id="1" name="Продукты" title="" url="/eng/products/" subin="1" active="0"> <section id="3" parental_id="2" name="Мониторы" title="" url="/eng/products/monitors/" subin="0" active="0"/> <section id="4" parental_id="2" name="Принтеры" title="" url="/eng/products/printers/" subin="0" active="0"> <section id="5" parental_id="4" name="Лазерные" title="" url="/eng/products/printers/laser/" subin="0" active="0"/> <section id="6" parental_id="4" name="Струйные" title="" url="/eng/products/printers/toner/" subin="0" active="0"/> </section> <section id="7" parental_id="2" name="Винчестеры" title="" url="/eng/products/hdd/" subin="0" active="0"> <section id="8" parental_id="7" name="IDE" title="" url="/eng/products/hdd/ide/" subin="0" active="0"/> <section id="9" parental_id="7" name="SCSI" title="" url="/eng/products/hdd/scsi/" subin="0" active="0"/> <section id="10" parental_id="7" name="Serial ATA" title="" url="/eng/products/hdd/sata/" subin="0" active="0"/> </section> <section id="11" parental_id="2" name="CD/DVD" title="" url="/eng/products/cd/" subin="1" active="0"> <section id="12" parental_id="11" name="CD-RW" title="" url="/eng/products/cd/rw/" subin="0" active="0"/> <section id="13" parental_id="11" name="CD-ROM" title="" url="/eng/products/cd/rom/" subin="0" active="0"/> <section id="14" parental_id="11" name="DVD" title="" url="/eng/products/cd/dvd/" subin="1" active="0"> <section id="15" parental_id="14" name="DVD-R" title="" url="/eng/products/cd/dvd/dvd-r/" subin="0" active="0"/> <section id="16" parental_id="14" name="DVD-RW" title="" url="/eng/products/cd/dvd/dvd-rw/" subin="1" active="1"/> </section> </section> <section id="17" parental_id="2" name="Мыши" title="" url="/eng/products/mice/" subin="0" active="0"> <section id="18" parental_id="17" name="Шариковые" title="" url="/eng/products/mice/ball/" subin="0" active="0"/> <section id="19" parental_id="17" name="Оптические" title="" url="/eng/products/mice/optical/" subin="0" active="0"/> <section id="20" parental_id="17" name="Живые" title="" url="/eng/products/mice/live/" subin="0" active="0"/> </section> <section id="21" parental_id="2" name="Прочее" title="" url="/eng/products/else/" subin="0" active="0"/> </section> <section id="22" parental_id="1" name="Поддержка" title="" url="/eng/support/" subin="0" active="0"/> <section id="23" parental_id="1" name="Сотрудничество" title="" url="/eng/cooperation/" subin="0" active="0"/> <section id="24" parental_id="1" name="О сайте" title="" url="/eng/about/" subin="0" active="0"/> <section id="25" parental_id="1" name="Новости" title="" url="/eng/news/" subin="0" active="0"> <section id="26" parental_id="25" name="Архив" title="" url="/eng/news/archive/" subin="0" active="0"> <section id="27" parental_id="26" name="Новое в архиве" title="" url="/eng/news/archive/new/" subin="0" active="0"/> </section> </section> </section> </tree>+ шаблон, натравливаемый на него имеет общий вид («левые» куски заменены многоточиями):
<?xml version="1.0" encoding="windows-1251"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
...
<xsl:key name="active" match="section" use="@active"/>
<xsl:template match="/">
...
<xsl:call-template name="logo"/>
...
</xsl:template>
<xsl:template name="logo">
...
<xsl:for-each select="key('active', 1)">
<a>
<xsl:attribute name="href">
<xsl:value-of select="@uri"/>
</xsl:attribute>
<img src="/img/logo_active.gif" width="78" height="35">
<xsl:attribute name="border"><xsl:text>0</xsl:text></xsl:attribute>
</img>
</a>
</xsl:for-each>
...
</xsl:template>Вот в таком направлении.<xsl:variable name="active_section" select="descendant-or-self::*[@active = 1]"/>А потом также for-each’ить – получим то же.
<xsl:copy-of select="descendant-or-self::*[@active = 1]" />получим нормальную копию узла:
<section id="16" parental_id="14" name="DVD-RW" title="" url="/eng/products/cd/dvd/dvd-rw/" subin="1" active="1"/>, а вот @uri получить – никак.