xsl-list
[Top] [All Lists]

Re: Match the element that have children and the attribute this="true" or the parent of the element having the attribute this="true" that does not have children.

2005-12-01 02:24:44
I'd like to match the (element that have (children and the (attribute
this="true"))) or the parent of the (element (having the attribute
this="true") (that does not have children)).

Assuming I've parsed your English correctly,

match="*[*][(_at_)this="true"] | *[*[not(*)][(_at_)this="true"]]"

Great, this is my working XSLT file. Can I improve it?


<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
<xsl:output method="xml" encoding="iso-8859-1"
omit-xml-declaration="yes" standalone="no" indent="no" />

<xsl:template match="/">
        <xsl:apply-templates select="opml/body/outline" />
</xsl:template>

<xsl:template match="*[*][(_at_)this='true'] | *[*[not(*)][(_at_)this='true']]">
        <ul>
                <xsl:for-each select="outline">
                        <li>
                                <xsl:if test="@this='true'">
                                        <xsl:attribute 
name="class">active</xsl:attribute>
                                </xsl:if>
                                <a>
                                        <xsl:attribute name="href">
                                                <xsl:value-of select="@url" />
                                        </xsl:attribute>
                                        <xsl:text>&#187; </xsl:text>
                                        <xsl:value-of select="@title" />
                                </a>
                        </li>
                </xsl:for-each>
        </ul>
</xsl:template>

</xsl:stylesheet>

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