Re: comment() node test

Subject: Re: comment() node test
From: "Evan Lenz" <elenz@xxxxxxxxxxx>
Date: Thu, 10 Aug 2000 17:24:13 -0700
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@xxxxxxxxxxx

-----Original Message-----
From: Evan Lenz [mailto:elenz@xxxxxxxxxxx]
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@xxxxxxxxxxx


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread