xsl-list
[Top] [All Lists]

[xsl] Pairing elements according to attributes with XSLT 1

2009-07-22 02:52:33
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>

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--