Subject: [xsl] block selection question (XSLT 1.0) From: Hermann Stamm-Wilbrandt <STAMMW@xxxxxxxxxx> Date: Fri, 6 May 2011 11:13:01 +0200 |
Hello, I know that this is basic but I cannot get it done correctly. Input: <lines> <line></line> <line>A1</line> <line>1</line> <line>B1</line> <line></line> <line>A2</line> <line>2</line> <line>2</line> <line>2</line> <line>B2</line> <line></line> <line></line> </lines> Intended output (blockwise, start at A, all including next B): <line>A1</line> <line>1</line> <line>A2</line> <line>2</line> <line>2</line> <line>2</line> This <xsl:for-each select="/lines/line[contains(.,'A')]"> <xsl:copy-of select="."/> </xsl:for-each> gives <line>A1</line> <line>A2</line> And this output is too much (double output of 2nd block) $ xsltproc y.xsl lines.xml | tidy -q -xml <line>A1</line> <line>1</line> <line /> <line>A2</line> <line>2</line> <line>2</line> <line>2</line> <line /> <line /> <line>A2</line> <line>2</line> <line>2</line> <line>2</line> <line /> <line /> $ cat y.xsl <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" > <xsl:output omit-xml-declaration="yes"/> <xsl:template match="/"> <xsl:for-each select="/lines/line[contains(.,'A')]"> <xsl:copy-of select="."/> <xsl:copy-of select="following-sibling::*[not(contains(.,'B'))]"/> </xsl:for-each> </xsl:template> </xsl:stylesheet> $ I tried making use of "preceding-sibling::*" at different places without success sofar. Any help is appreciated. Mit besten Gruessen / Best wishes, Hermann Stamm-Wilbrandt Developer, XML Compiler, L3 Fixpack team lead WebSphere DataPower SOA Appliances https://www.ibm.com/developerworks/mydeveloperworks/blogs/HermannSW/ ---------------------------------------------------------------------- IBM Deutschland Research & Development GmbH Vorsitzender des Aufsichtsrats: Martin Jetter Geschaeftsfuehrung: Dirk Wittkopp Sitz der Gesellschaft: Boeblingen Registergericht: Amtsgericht Stuttgart, HRB 243294
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Find node with no child t, Piet van Oostrum | Thread | Re: [xsl] block selection question , Mukul Gandhi |
Re: [xsl] Looking for a concise way, David Carlisle | Date | Re: [xsl] Looking for a concise way, Brandon Ibach |
Month |