RE: [xsl] Testing for a following sibling node type that occurs a t a varied position

Subject: RE: [xsl] Testing for a following sibling node type that occurs a t a varied position
From: Wendell Piez <wapiez@xxxxxxxxxxxxxxxx>
Date: Wed, 30 Jun 2004 11:31:06 -0400
At 03:20 AM 6/30/2004, someone wrote:
I changed your test a little, so I detect all the last 'B' by testing if the
name of the actual node differs from the name of the following node.
I hope this will help you

-----------------------------------------
<xsl:template match="root">
 <xsl:for-each select="B">
  <xsl:if test="not(name() = name(following-sibling::*))">
   <xsl:value-of select="." />
  </xsl:if>
 </xsl:for-each>
</xsl:template>
-----------------------------------------

Given that it is known, in this test, that the context node is a 'B', this could be


 <xsl:for-each select="B">
  <xsl:if test="not(following-sibling::B)">
   <xsl:value-of select="." />
  </xsl:if>
 </xsl:for-each>

... but I don't think it answers the OP's requirement.

As I recall, Mike suggested child::A/preceding-sibling::B[1], which isn't considered adequate because the context node is already a B, not the parent of the As and Bs. So the requirement is not to *select* all B nodes that have no Bs after them before As, but to test true on a B context node that is (as the OP said) "the last 'B' node that occurs before the next 'A' node".

In other words, the context node is a B, and the test should detect that the directly following sibling is not a B, but that there is an A following sibling.

This is

test="following-sibling::*[1][not(self::B)] and following-sibling::A"

Cheers,
Wendell




====================================================================== Wendell Piez mailto:wapiez@xxxxxxxxxxxxxxxx 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 ======================================================================


Current Thread