xsl-list
[Top] [All Lists]

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

2004-06-30 08:31:06
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(_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
======================================================================



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