xsl-list
[Top] [All Lists]

xsl: display only a specified node...

2002-10-14 06:29:13
hi folks

i'm not able to find a solution for that...and my xsl knowledge isn't that
good, so here's the situation:

XML:
<sequence stype="ondemand" broadcastID="00">
        <mark ID="m0001" name="testh" time="0:00:00">
                <index>
                        <chapter lang="en" text="test1"/>
                </index>
        </mark>
        <mark ID="m0002" name="" time="0:00:20" />
        <mark ID="m0003" time="0:00:40" />
        <mark ID="m0004" time="0:01:00" />
        <mark ID="m0005" time="0:01:20">
                <index>
                        <chapter lang="en" text="test2"/>
                </index>
        </mark>
</sequence>

this xml is used for the data itself and to build up a tree menu structure
like this (that works w/o problems):
                                                
                          frameset
-------------------------------------------------------
       tree menu frame                  details frame
---------------------------     -------------------------
|sequence                 |   |                       |
| - mark 0:00:00 (m0001)  |   |                       |
|    - index              |   |                       |
| - mark 0:00:20 (m0002)  |   |                       |
| - mark 0:00:40 (m0003)  |   |                       |
| - mark 0:01:00 (m0004)  |   |                       |
| - mark 0:01:20 (m0005)  |   |                       |
|    - index              |   |                       |
---------------------------   -------------------------

functionality:

i click on sequence, and on the details frame the stype and broadcastID
attributes are shown (that works w/o problems).
i click on any mark, and the mark info (id / name / time)  is shown in the
details frame. (that works w/o problems)
i click on index under mark (m0001) and ONLY the index, that's belong to
m0001 should be displayed, but i get both...
the one from m0001 and m0005. here's the xsl:

<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
version="1.0">
<xsl:param name="page"/>   i get this from a asp script, so i know which
"tree element" was clicked 
<xsl:param name="markid"/> i get this from a asp script, so i know which
mark was clicked 
<xsl:template match="/">
...
        <body>  
                <xsl:apply-templates />
        </body>
...
</xsl:template>
<xsl:template match="sequence">
        <xsl:if test="$page = 'sequence'">
                ...
                        <xsl:value-of select="@broadcastID" />
                ...
        </xsl:if>
        <xsl:apply-templates />
</xsl:template>
<xsl:template match="mark">
        <xsl:if test="$page = 'mark'">
                <xsl:if test="@ID=$markid">
                        ...
                                <xsl:value-of select="@name" />
                        ...
                </xsl:if>       
        </xsl:if>
        <xsl:apply-templates />
</xsl:template>
<xsl:template match="index">
        <xsl:if test="$page = 'index'">
                <xsl:apply-templates/>
        </xsl:if>
</xsl:template>
<xsl:template match="chapter">
        ...
                <xsl:value-of select="@text"/>
        ...
</xsl:template>

the problem is that i can't really "identify" the index... so i can't check
which one the xsl should display
it should only show the info that belongs to the clicked tree-element. and
not all the childs from all the marks
as here in the bad example.

and as always please excuse my poor english...

thanks a lot


Jan M. Krattiger

Software Developer

Unit.Net AG
Thurgauerstrasse 54
CH - 8050 Zurich

Email:   jan(_dot_)krattiger(_at_)unit(_dot_)net       
Web:     http://unit.net



 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list



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