Subject: [xsl] finding closest node with certain characteristics From: "Steve Ylvisaker ylvisaker.steve@xxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> Date: Tue, 6 May 2014 14:23:35 -0000 |
forum: I am implementing a variation on Ken's PSMI process to accommodate some special needs for tax tables in our composition to PDF process. So, my input is a namespace fo file that contains a special wrapper: <psmi:inserted-page-geometry/>. This wrapper may occur multiple times within the XML instance. All is well with my psmi process, however, I can run into situations where an element following the psmi wrapper has the break-after="page" or break-before="page" attribute associated with it and is now redundant resulting in a blank page. So I need to find the first occurrence of any element with attribute break-after (or break-before) following a psmi wrapper and determine if there is any content between that element and the psmi wrapper. If there is no content then the page break request is likely redundant and needs to be defeated. Example data: <psmi:inserted-page-geometry> <fo:table> ~large table markup ~ </fo:table> </psmi:inserted-page-geometry> <fo:block margin-top="8pt"> <fo:marker marker-class-name="runningFoot"/> <fo:block span="all" break-after="page"/> <fo:block>Composition text here</fo:block> My problem is that the psmi wrapper may occur multiple times in the xml instance so I need to determine if my break-after element is the first one following the closest psmi wrapper. I know I have figured this out before but have a block trying to figure it out now. psudo code: <xsl:template match="*[@break-after]"> <xsl:choose> <!-- this test is where I need help, the rest I am fine with --> <xsl:when test="(I am the first occurrence of an element with the attribute break-after following the closest psmi wrapper element) and (there is no content in the elements that exist between me and the closest psmi wrapper element)">copy the element without the break-after attribute</xsl:when> <xsl:otherwise>copy the element as it occurred in the xml instance</xsl:otherwise> </xsl:choose>> </xsl:template> Thanks for any clues. Steve
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Functional programming, Ihe Onwuka ihe.onwuk | Thread | Re: [xsl] finding closest node with, Wendell Piez wapiez@ |
Re: [xsl] Functional programming, Ihe Onwuka ihe.onwuk | Date | Re: [xsl] finding closest node with, Wendell Piez wapiez@ |
Month |