You may transform it in two passes:
1. Create a programlisting with <linebreak/> elements, using only the
matching-substring instruction in analyze-string. Store it in a variable.
2. Transform the variablebs children using
for-each-group/@group-ending-with='linebreak' (or @group-starting-with).
Caveat: Make sure that you declare the variable
as="element(programlisting)"; if you omit the as="b&" attribute, you will
get a document node containing a programlisting element. Selecting
$variable/node() will yield different elements for both cases:
programlisting/node() if the as="b&" attribute is present, programlisting
if it isnbt.
Gerrit
On 23.03.2015 11:54, Joga Singh Rawat jrawat@xxxxxxxxxxxxxx wrote:
> Hi Guys,
> We need a clue to break <preformat> into multiple paragraph. Using below xsl
> we are not able to transform <bold>
>
> Input
> <preformat>
> Line 1
> Line <bold>2</bold>
> Line 3
> </preformat>
>
> Required output
> <programlisting>
> <p>Line 1</p>
> <p>Line <b>2</b></p>
> <p>Line 3</p>
> </programlisting>
>
> XSL
> <xsl:template match="preformat">
> <programlisting>
> <xsl:for-each-group select="." regex="[\n\r]">
> <xsl:non-matching-substring>
> <p><xsl:value-of select="."/></p>
> </xsl:non-matching-substring>
> </xsl:for-each-group>
> </programlisting>
>
> Thanks in advance
> ...JSR
>
>
--
Gerrit Imsieke
GeschC$ftsfC<hrer / Managing Director
le-tex publishing services GmbH
Weissenfelser Str. 84, 04229 Leipzig, Germany
Phone +49 341 355356 110, Fax +49 341 355356 510
gerrit.imsieke@xxxxxxxxx, http://www.le-tex.de
Registergericht / Commercial Register: Amtsgericht Leipzig
Registernummer / Registration Number: HRB 24930
GeschC$ftsfC<hrer: Gerrit Imsieke, Svea Jelonek,
Thomas Schmidt, Dr. Reinhard VC6ckler
|