<for-each select="$lines[not(position()=1) and starts-with(., '%%')]">
<variable name="end" select="."/>
<variable name="start" select="preceding-sibling::*[starts-with(., '%%')][1]"/>
<variable name="fields" select="($start/following-sibling::*|$lines[not($start)])[not(preceding-sibling::*[generate-id()=generate-id($end)]) and not(starts-with(., '%%'))]"/>
<if test="$fields">
<for-each select="$lines[not(position()=1) and starts-with(., '%%')]">
<variable name="end" select="."/>
<variable name="start" select="preceding-sibling::*[starts-with(., '%%')][1]"/>
<variable name="fields" select="($start/following-sibling::*|$lines[not($start)])[not(preceding-sibling::*[generate-id()=generate-id($end)]) and not(starts-with(., '%%'))]"/>
<if test="$fields">