[xsl] Ignoring a child element

Subject: [xsl] Ignoring a child element
From: <Emily.Garrett@xxxxxxxxxxx>
Date: Thu, 7 Sep 2006 15:35:52 -0400
I'm trying to weed out a <para> element that does not have any content.
However, it does have a TLStyle element which would style the content if
it existed.  The XML table entry looks like this:


                              <entry colname="1" morerows="0"
align="left" valign="top">
                                 <para>
                                    <TLStyle>BodyText</TLStyle>
                                 </para>
                              </entry>

I tried using normalize-space(.), but since the TLStyle element is in
there, it tests true.  normalize-space(.) = BodyText

							<xsl:choose>

<xsl:when test="normalize-space(.)">

<xsl:apply-templates select="current()"/>

</xsl:when>

The following code also tests true, but I'm not sure why.  I want it to
ignore what's in TLStyle and tell me if there is any other content
inside of <entry>.

                                            <xsl:variable
name="withoutTLStyle" select="node()[not(self::TLStyle)]"/>
							<xsl:choose>

<xsl:when test="normalize-space($withoutTLStyle)">

<xsl:apply-templates select="current()"/>

</xsl:when>
                                                <xsl:otherwise>
                                                <!--do something else
because it's empty-->
                                                </xsl:otherwise>
                                          </xsl:choose>

normalize-space($withoutTLStyle) is also = BodyText.

Any thoughts on how to conquer this?

Emily Garrett

Current Thread