xsl-list
[Top] [All Lists]

[xsl] Selecting nodes based on previous node values

2008-12-11 04:16:49
Hello,

I am trying some (for me) complex constructions, but I don;t get it working.

Assume the following XML snippet.

<demo>
    <library>
        <criteria><status  value="active"/></criteria>
        <books><book title="test"/></books>
    </library>
    <library>
        <criteria><status  value="notActive"/></criteria>
        <books><book title="this may not be visible"/></books>
    </library>
</demo>

I want to print all book titles in library with criteria status = "active".

I was thinking about something like this:

 <xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
xmlns:reporting="http://www.sophis.net/reporting";>
<xsl:template match="/">
    <xsl:apply-templates/>
</xsl:template>
<xsl:template 
match="demo/library/books[preceding::/criteria/status[(_at_)value='active']]">
    <xsl:for-each select="book">
         <xsl:value-of select="./@title"/>
    </xsl:for-each
</xsl:template>
 </xsl:stylesheet>

But I couldn't get it working. What did I wrong?

Thanks,

Peter

--~------------------------------------------------------------------
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>