[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: General algorithm for finding nodes between PIs
On 26.01.2017 20:53, Martin Honnen martin.honnen@xxxxxx wrote:
On 26.01.2017 20:45, Rick Quatro rick@xxxxxxxxxxxxxx wrote: Like this: <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" exclude-result-prefixes="xs" version="2.0"> <xsl:template match="/"> <results> <xsl:apply-templates/> </results> </xsl:template> <xsl:template match="*[processing-instruction('Fm')[starts-with(., 'Condstart')]]"> <xsl:for-each-group select="node()" group-starting-with="processing-instruction('Fm')[starts-with(., 'Condstart')]"> <xsl:if test="self::processing-instruction('Fm')[starts-with(., 'Condstart')]"> <group name="{.}"> <xsl:variable name="pi-end-name" select="replace(., 'Condstart', 'Condend')"/> <xsl:for-each-group select="current-group() except ." group-ending-with="processing-instruction('Fm')[. = $pi-end-name]"> <xsl:if test="current-group()[last()][self::processing-instruction('Fm')[. = $pi-end-name]]"> <xsl:copy-of select="current-group()[position() ne last()]"/> </xsl:if> </xsl:for-each-group> </group> </xsl:if> </xsl:for-each-group> <xsl:apply-templates/> </xsl:template> <xsl:template match="text()"/> </xsl:stylesheet>
|
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
|