This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: comment() node test



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

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]