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
|