xsl-list
[Top] [All Lists]

RE: [xsl] Preceding comment() match

2006-12-21 17:39:49
Just google for

XSLT replace newline with <br> element

or try

http://www.biglist.com/lists/xsl-list/archives/200103/msg00184.html

Michael Kay
http://www.saxonica.com/
 

-----Original Message-----
From: Karl Stubsjoen [mailto:kstubs(_at_)gmail(_dot_)com] 
Sent: 21 December 2006 23:56
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: Re: [xsl] Preceding comment() match

I probably shouldn't go here...
so, now that I am self-documenting these comments, I'd like 
to create line breaks for the web, where line break occur 
naturally in my comments, so:

<!--
   these are comments
   with line breaks
   should output to browser with
   these line breaks.
-->

Currently, this:

<xsl:value-of 
select="preceding-sibling::node()[not(self::text()[not(normali
ze-space())])][1][self::comment()]"/>

Produces no line breaks.  If I include <br/>(s) in the above 
comments and add disable-output-escaping="yes" to my 
value-of... I get the line breaks, but who wants to add these 
"unnatural" html elements to these comments!

Any hints?



On 12/21/06, Karl Stubsjoen <kstubs(_at_)gmail(_dot_)com> wrote:
Working perfect ; )
Nothing like self-documenting XSL Docs!

Karl..

On 12/21/06, Wendell Piez <wapiez(_at_)mulberrytech(_dot_)com> wrote:
Karl,

Please double check your code. I would expect "every preceding 
element's first comment tag" to be 
"preceding-sibling::*/comment()[1]" (note extra step). The 
expression you provided us, 
"preceding-sibling::comment()[1]", would 
select the first preceding (sibling) comment.

If you want the first preceding node, but only if it's a comment, 
that would be

preceding-sibling::node()[1][self::comment()]

but note that whitespace-only text nodes can impede that.

Working around those would be


preceding-sibling::node()[not(self::text()[not(normalize-space()])]
                         [1][self::comment()]"

... which I know is a monster, but there you have it.

Cheers,
Wendell

At 04:53 PM 12/21/2006, you wrote:
I need to match the first comment() preceding the 
current context.

So from:

<!--
this is the comments, first preceding
-->
<xsl:template name="example">

</xs:template>


Assuming that this xpath should work:
<xsl:value-of select="preceding-sibling::comment()[1]"/>

But instead, I am matching on every preceding elements first 
comment tag.  I just need "your" comment tag, and if you 
don't have 
one, then nevermind.

Please help.

Karl..


--~----------------------------------------------------------------
-- XSL-List info and archive:  
http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: 
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--



======================================================================
Wendell Piez                            
mailto:wapiez(_at_)mulberrytech(_dot_)com
Mulberry Technologies, Inc.                
http://www.mulberrytech.com
17 West Jefferson Street                    Direct Phone: 
301/315-9635
Suite 207                                          Phone: 
301/315-9631
Rockville, MD  20850                                 Fax: 
301/315-8285

----------------------------------------------------------------------
  Mulberry Technologies: A Consultancy Specializing in 
SGML and XML 

====================================================================
==



--~-----------------------------------------------------------------
- XSL-List info and archive:  
http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: 
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--




--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: 
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--



--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--

<Prev in Thread] Current Thread [Next in Thread>