Subject: Re: [xsl] Pairing elements according to attributes with XSLT 1 From: Hermann Stamm-Wilbrandt <STAMMW@xxxxxxxxxx> Date: Wed, 22 Jul 2009 10:36:37 +0200 |
$ cat doit.xsl <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="xml" /> <xsl:template match="/"> <xsl:call-template name="doit"> <xsl:with-param name="from" select="'big'" /> <xsl:with-param name="to" select="'small'" /> </xsl:call-template> </xsl:template> <xsl:template name="doit"> <xsl:param name="from" /> <xsl:param name="to" /> <MainWordInput xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="entriesResult.xsd" fromSize="{$from}" toSize="{$to}"> <xsl:for-each select="/KeywordsInfo/KeywordsEntry"> <xsl:variable name="kentry" select="." /> <xsl:for-each select="keyword[@size=$from]"> <xsl:variable name="fromkw" select="." />> <xsl:for-each select="$kentry/keyword[@size=$to]"> <Entries> <first><xsl:value-of select="$fromkw" /></first> <second><xsl:value-of select="." /></second> </Entries> </xsl:for-each> </xsl:for-each> </xsl:for-each> </MainWordInput>> </xsl:template> </xsl:stylesheet> $ xsltproc doit.xsl k.xml | tidy -q -xml <?xml version="1.0"?>. <MainWordInput xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="entriesResult.xsd" fromSize="big" toSize="small"> <Entries> <first>bowling ball</first> <second>tennis ball</second> </Entries> <Entries>> <first>bowling ball</first>> <second>table tennis ball</second> </Entries> <Entries>> <first>mountain 1</first> <second>chair 1</second>> </Entries> <Entries>> <first>mountain 1</first> <second>chair 2</second>> </Entries> <Entries>> <first>mountain 2</first> <second>chair 1</second>> </Entries> <Entries>> <first>mountain 2</first> <second>chair 2</second>> </Entries> </MainWordInput> $ Mit besten Gr|_en / Best wishes, Hermann Stamm-Wilbrandt Developer, XML Compiler WebSphere DataPower SOA Appliances ---------------------------------------------------------------------- IBM Deutschland Research & Development GmbH Vorsitzender des Aufsichtsrats: Martin Jetter Geschdftsf|hrung: Erich Baier Sitz der Gesellschaft: Bvblingen Registergericht: Amtsgericht Stuttgart, HRB 243294 Andy Kohn <andydev@xxxxxxxx m> To xsl-list@xxxxxxxxxxxxxxxxxxxxxx 07/22/2009 08:52 cc AM Subject [xsl] Pairing elements according to Please respond to attributes with XSLT 1 xsl-list@xxxxxxxx lberrytech.com Hi all, I'm trying to pair elements according to attributes using XSLT 1. Giving an example would be easier to explain ;) This is an example of the input XML: <KeywordsInfo> <KeywordsEntry> <keyword size="big">bowling ball</keyword> <keyword size="medium">should not be included</keyword> <keyword size="small">tennis ball</keyword> <keyword size="small">table tennis ball</keyword> </KeywordsEntry> <KeywordsEntry> <keyword size="big">mountain 1</keyword> <keyword size="big">mountain 2</keyword> <keyword size="small">chair 1</keyword> <keyword size="small">chair 2</keyword> </KeywordsEntry> <KeywordsEntry> <keyword size="medium">should not be excluded at all</keyword> <keyword size="tiny">should not be excluded at all</keyword> </KeywordsEntry> </KeywordsInfo> I need to create an XSLT 1, that gets two parameters, fromSize and toSize, which then creates pairs of this entries. For example, if I send fromSize=big, toSize=small, I need to get this result: <MainWordInput xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="entriesResult.xsd" fromSize ="big" toSize="small"> <Entries> <first>bowling ball</first> <second>tennis ball</second> </Entries> <Entries> <first>bowling ball</first> <second>table tennis ball</second> </Entries> <Entries> <first>mountain 1</first> <second>chair 1</second> </Entries> <Entries> <first>mountain 1</first> <second>chair 2</second> </Entries> <Entries> <first>mountain 2</first> <second>chair 1</second> </Entries> <Entries> <first>mountain 2</first> <second>chair 2</second> </Entries> </MainWordInput>
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] Pairing elements according to, Andy Kohn | Thread | Re: [xsl] Pairing elements accordin, Andy Kohn |
[xsl] Pairing elements according to, Andy Kohn | Date | [xsl] question on random numbers fo, Hermann Stamm-Wilbra |
Month |