[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

RE: get immediat preceeding node, if it is a comment

Subject: RE: get immediat preceeding node, if it is a comment
From: "Liao, John Teguh (John)" <jliao@xxxxxxxxxx>
Date: Mon, 7 Oct 2002 16:38:34 -0400
get preceding node
Hi list, the newbie needs help again ;)

I have something like this:

<table name='table1' etc. etc.>
  <item name='col1' aggrtype="bit" aggrinfo="bit1,bit2,bit3"/>
  <item name="bit1" etc. etc./>
  <item name="bit2" etc. etc./>
  <item name="bit3" etc. etc./>
</table>

When my context node is <item name="bit1" ... /> I want to print the
aggrinfo (actually the number of bit names in aggrinfo, but I think I know
how
to do that, now) if and only if the node before bit1 has aggrtype="bit".
I figured this has to do with using the post below, but when I tried it
it gave me nothing. Here's my xsl:

<xsl:if
test="preceding-sibling::node()[normalize-space][1]/@aggrtype='bit'">
  <xsl:value-of
select="preceding-sibling::node()[normalize-space][1]/@aggrinfo"/>
</xsl:if>

What did I do wrong?

thanks!

J.L.

-----Original Message-----
From: Joerg Heinicke [mailto:joerg.heinicke@xxxxxx]
Sent: Friday, October 04, 2002 7:57 AM
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Subject: Re:  get immediat preceeding node, if it is a comment




Andrew Welch wrote:
>>  preceding-sibling::node()[normalize-space()][1][self::comment()]
>>
>>  This will select the first in a list of nodes that return true for
>>  normalize-space() and self::comment().
>>
>>No, that would be
>>
>>preceding-sibling::node()[normalize-space()][self::comment()][1]
>>
>>What you have,
>>preceding-sibling::node()[normalize-space()][1][self::comment()]
>>
>>selects the first non-whitespace-text node if it is a comment.
> 
> 
> Sure.  But aren't they both the same (they select the same node)? The
> only difference would be the size of the lists the predicates create?
> (feel free to point out the correct terminology here)

Definitely no.

<root>
   <!--   test     -->
   <test1>test</test1>
   <test2>test</test2>
   <!--   test     -->
   <test3>test</test3>
   <test4>test</test4>
</root>

with context test4:

preceding-sibling::node() gets all other test elements and the comments and 
the whitespace only text nodes.

preceding-sibling::node()[normalize-space()] gets all other test elements 
and the comments.

preceding-sibling::node()[normalize-space()][1] gets test3.

preceding-sibling::node()[normalize-space()][1][self::comment()] gets 
nothing, because test3 isn't a comment.

preceding-sibling::node()[normalize-space()][self::comment()] gets all
comments.

preceding-sibling::node()[normalize-space()][self::comment()][1] gets the 
comment infront of test3.

But the original poster asked for immediately preceding comments. So only
preceding-sibling::node()[normalize-space()][1][self::comment()] is correct 
- with the danger of empty elements.

Regards,

Joerg

-- 

System Development
VIRBUS AG
Fon  +49(0)341-979-7419
Fax  +49(0)341-979-7409
joerg.heinicke@xxxxxxxxx
www.virbus.de

VIRBUS hat jetzt als erster deutscher Softwarehersteller die Zertifizierung 
für den 3D Secure-Authentifizierungsstandard "Verified by Visa" erhalten. 
Details unter 
http://www.virbus.de/de/press/pressemitteilung/20020828_verified_by_VISA.


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

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


Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.