This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: comment() node test
- To: "XSL-List" <xsl-list at mulberrytech dot com>
- Subject: Re: comment() node test
- From: "Evan Lenz" <elenz at xyzfind dot com>
- Date: Thu, 10 Aug 2000 17:24:13 -0700
- Reply-To: xsl-list at mulberrytech dot com
Okay, I figured it out after talking it over with someone else. Whitespace
will get you every time, if you're not careful.
Adding <xsl:strip-space elements="element"/> did the job. Or I could wrap
it all into the XPath expression as follows, adding an additional predicate
to ensure that whitespace nodes are excluded:
<xsl:value-of
select="preceding-sibling::node()[not(self::text())][1][self::comment()]"/>
This worked just as well.
Evan Lenz
elenz@xyzfind.com
-----Original Message-----
From: Evan Lenz [mailto:elenz@xyzfind.com]
Sent: Thursday, August 10, 2000 4:45 PM
To: XSL-List
Subject: comment() node test
I'm trying to display the value of the previous sibling if it is a comment.
What's wrong with my XPath expression? It won't display anything.
<xsl:for-each select="element">
<xsl:value-of select="preceding-sibling::node()[1][self::comment()]"/>
</xsl:for-each>
I've confirmed that the parser I'm using passes comments to the XSLT
processor (Instant Saxon), as the comment() node test works in other cases,
such as the following:
<xsl:for-each select="comment()">
<xsl:value-of select="."/>
</xsl:for-each>
Thanks,
Evan Lenz
elenz@xyzfind.com
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list