[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: Breaking paragraphs one linebreaks
Am 09.05.2019 um 21:55 schrieb Martin Honnen martin.honnen@xxxxxx:
Am 09.05.2019 um 21:42 schrieb Manuel Souto Pico terminolator@xxxxxxxxx: An adaption of the previous suggestion, but now with escaped XML syntax in the sample input, to then use parse-xml-fragment, is at https://xsltfiddle.liberty-development.net/ej9EGcD/5 and does B <xsl:template match="tu"> B B B B B <xsl:variable name="split"> B B B B B B B B B <xsl:apply-templates mode="split"/> B B B B B </xsl:variable> B B B B B <xsl:for-each-group select="$split/tuv/seg" group-by="position() mod count($split/tuv[1]/seg)"> B B B B B B B B B <tu tuid="{position()}"> B B B B B B B B B B B B B <xsl:apply-templates select="current-group()/snapshot()/.."/> B B B B B B B B B </tu> B B B B B </xsl:for-each-group> B </xsl:template> B <xsl:mode name="split" on-no-match="shallow-copy"/> B <xsl:template match="seg" expand-text="yes" mode="split"> B B B B B <xsl:for-each-group select="parse-xml-fragment(.)/node()" group-ending-with="br"> B B B B B B B B B <seg>{.}</seg> B B B B B </xsl:for-each-group> B </xsl:template> For HTML parsing you would need to use an extension or David Carlisle's HTML parser available on Github, but the approach then is the same. Of course handling different elements like various list constructs needs more code but once you have a tree you can process the "normal" XSLT way you can write more templates and/or more modes for various processing steps to address more complex input structures.
|
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
|