xsl-list
[Top] [All Lists]

Re: [xsl] test="" not taking value of attribute

2008-08-26 10:18:30

Am 26.08.2008 um 17:08 schrieb Michael Kay:

[..snip.]
<xsl:variable name="veranstaltungen" select="//news/month" />
<xsl:when test="$veranstaltungen[(_at_)year=(_dot_)(_dot_)/@date]/@name =
substring (@name,1,3)">
    do something
</xsl:when>
[..snip.]

Why does the "../@date" in the while clause not contain (at
least it seems so) anything?

You haven't shown us your XML source, but my guess is that you are imagining that ../@date selects the same thing inside the predicate as it would select
outside the predicate. In fact the context node changes inside the
predicate. Perhaps you want

test="$veranstaltungen[(_at_)year=current()/../@date]

Michael Kay
http://www.saxonica.com/


--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--



You are right. I need to show you more. Both the XSL and the 2 XML. And as an extra I'll show you what i want to achieve (archive):

2008 | Jan | Feb | Mär | Apr | May | Jun (with Link) | Jul (with Link) | Aug (with Link) | Sep | Okt | Nov | Dez 2007 | Jan | Feb | Mär (with Link) | Apr | May | Jun | Jul | Aug | Sep | Okt | Nov | Dez

XSL:
<dl class="archiv">
        <xsl:variable name="veranstaltungen" select="//news/month" />
<xsl:for-each select="document('/var/www/vhosts/feuerbach.de/ httpdocs/relaunch/external_xml/datum.xml')//year[(_at_)date = $veranstaltungen/@year]">
                <xsl:sort select="@date" order="descending"/>
                <dt><a href=""><xsl:value-of select="@date" /></a></dt>
                <xsl:for-each select="monat">
                        <xsl:choose>                      
<xsl:when test="$veranstaltungen[(_at_)year=(_dot_)(_dot_)/@date]/@name = substring (@name,1,3)"> <dd><a href="" title=""><xsl:value-of select="substring(@name, 1,3)" /></a></dd>
                                </xsl:when>
                                <xsl:otherwise>
<dd class="empty"><xsl:value-of select="substring(@name,1,3)" / ></dd>
                                </xsl:otherwise>
                        </xsl:choose>
                </xsl:for-each>
        </xsl:for-each>
</dl>


XML 1:
<news count="007" offset="001" month="" letzter="007">
        <month id="3" name="Mär" year="2007" events="1"/>
        <month id="7" name="Jul" year="2008" events="2"/>
        <month id="8" name="Aug" year="2008" events="3"/>
        <month id="9" name="Sep" year="2008" events="1"/>
</news>


XML 2 from document():
<year date="2007">
        <monat name="Januar" number="01" start="1" days="31" />
        <monat name="Februar" number="02" start="4" days="28" />
        <monat name="März" number="03" start="4" days="31" />
        <monat name="April" number="04" start="7" days="30" />
        <monat name="Mai" number="05" start="2" days="31" />
        <monat name="Juni" number="06" start="5" days="30" />
        <monat name="Juli" number="07" start="7" days="31" />
        <monat name="August" number="08" start="3" days="31" />
        <monat name="September" number="09" start="6" days="30" />
        <monat name="Oktober" number="10" start="1" days="31" />
        <monat name="November" number="11" start="4" days="30" />
        <monat name="Dezember" number="12" start="6" days="31" />
</year>
--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--

<Prev in Thread] Current Thread [Next in Thread>