|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Test for preceding-sibling and text
Hi all,
I have a template that croups consecutive elements of a certain type. The problem is that it also groups these elements if there is text between these elements. How do I avoid that? Input xml
<?xml version="1.0"?>
<root>
<X>
Some text
<A>
Something in A
</A>
<A>
Something in A
</A>
<B>
Something in B
</B>
<A>
Something in A
</A>
</X>
<Y>
Some text
<A>
Something in A
</A>
Some text between two A elements
<A>
Something in A
</A>
</Y>
</root><?xml version="1.0"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:template match="/"> <xsl:apply-templates/> </xsl:template> <xsl:template match="X"> <xsl:apply-templates/> </xsl:template> <xsl:template match="Y"> <xsl:apply-templates/> </xsl:template> <xsl:template match="A"> <!-- Do something here --> <xsl:choose> <xsl:when test="not(preceding-sibling::*[1][self::A])"> <!-- This test correctly does not choose the second A under X, but also ignores the second A under Y which I do not want --> </xsl:when> <xsl:otherwise> </xsl:otherwise> </xsl:choose> </xsl:template> </xsl:stylesheet> I can see that I need to do something in this test "not(preceding-sibling::*[1][self::A])", but I do not know how. I hope that I have explained the problem well enough, and that somebody can help me. Regards, Ragulf Pickaxe :| _________________________________________________________________ Express yourself instantly with MSN Messenger! Download today it's FREE! http://messenger.msn.com/
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|

Cart








