Subject: Re: [xsl] We need to kick someone out of the group From: "Martin Honnen martin.honnen@xxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> Date: Fri, 11 Jun 2021 12:35:03 -0000 |
Hi all,baffled by why something doesn't work.
Sometimes I am baffled about how to approach something. Sometimes I'm
remove the <label>.
Using XSLT 2.0, I have the input XML:
<contrib-group> <contrib><name>Bob</name><xref rid="aff1"/></contrib> <contrib><name>Judy</name><xref rid="aff2"/></contrib> </contrib-group> <aff id="1"><label>1</label>Kingdom of Curds</aff> <aff id="2"><label>2</label>Land of Whey</aff> <contrib-group> <contrib><name>Jimmy</name><xref rid="aff3"/></contrib> </contrib-group> <aff id="3"><label>2</label>Duchy of Lambic-Soaked Cheese Rind</aff>
I'm trying to get:
<contrib-group> <contrib><name>Bob</name><xref rid="aff1"/></contrib> <contrib><name>Judy</name><xref rid="aff2"/></contrib> <aff id="1">Kingdom of Curds</aff> <aff id="2">Land of Whey</aff> </contrib-group> <contrib-group> <contrib><name>Jimmy</name><xref rid="aff3"/></contrib> <aff id="3">Duchy of Lambic-Soaked Cheese Rind</aff> </contrib-group>
That is, move the following <aff> elements into the <contrib-group> and
I would use group-starting-with in a template matching the parent or node e.g.
<xsl:template match="*[contrib-group]"> <xsl:copy> <xsl:for-each-group select="*" group-starting-with="contrib-group"> <xsl:copy> <xsl:apply-templates select="@*, node(), tail(current-group())"/> </xsl:copy> </xsl:for-each-group> </xsl:copy> </xsl:template>
Assumes the identity template set up. tail(current-group()) is subsequence(current-group(), 2) in XSLT 2.
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] We need to kick someone out o, Charles O'Connor coc | Thread | Re: [xsl] We need to kick someone o, Wendell Piez wapiez@ |
[xsl] We need to kick someone out o, Charles O'Connor coc | Date | Re: [xsl] We need to kick someone o, Wendell Piez wapiez@ |
Month |