Subject: Re: [xsl] streaming XSLT creating a header from a first record From: "Martin Honnen martin.honnen@xxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> Date: Tue, 15 May 2018 14:54:13 -0000 |
still trying to get my head around this and facing obstacles, most likely by lack of understanding... however
example in
<table> <row id="row1" attr1="A" attr2="AA"/> <row id="row2" attr1="C" attr2="CC"/> <row id="row3" attr1="D" attr2="DD"/> </table>
example out
<document> <header> <!-- process first row here --> <id>row1</id> <attr1>A</attr1> <attr2>AA</attr2> </header> <content> <!-- process all including first row here --> <row id="row1" attr1="A" attr2="AA"/> <row id="row2" attr1="C" attr2="CC"/> <row id="row3" attr1="D" attr2="DD"/> </content> </document>
Using the accumulator or the xsl:iterate approach allows me to process the header row twice but I can't seem to figure out to create the header and then continue the iteration in a different construct it seems I need the header always before the iterator has started
<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:math="http://www.w3.org/2005/xpath-functions/math" exclude-result-prefixes="xs math" version="3.0"> <xsl:mode streamable="yes" on-no-match="shallow-copy"/> <xsl:mode name="header" streamable="yes"/>
<xsl:output indent="yes"/> <xsl:template match="table"> <document> <xsl:fork> <xsl:sequence> <header> <xsl:apply-templates select="row[1]/@*" mode="header"/> </header> </xsl:sequence> <xsl:sequence> <content> <xsl:apply-templates select="row"/> </content> </xsl:sequence> </xsl:fork> </document> </xsl:template> <xsl:template match="row/@*" mode="header" expand-text="yes"> <xsl:element name="{name()}">{.}</xsl:element> </xsl:template> </xsl:stylesheet>
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] streaming XSLT creating a, Geert Bormans geert@ | Thread | Re: [xsl] streaming XSLT creating a, Geert Bormans geert@ |
Re: [xsl] streaming XSLT creating a, Geert Bormans geert@ | Date | Re: [xsl] streaming XSLT creating a, Geert Bormans geert@ |
Month |