Home. 
.

transparent

transparent

transparent

Altova Mailing List Archives


Re: Node Grouping

From: "Ben Schumacher" <bschumacher@--------------.--->
To: NULL
Date: 6/1/2004 4:39:00 PM
Thanks for the reply!  If you don't mind, I have another question ...

Here is the exact XML structure that I am working with ...

<Products>
    <ProductsItem>
        <Product>
            <PacketData>
                <Product>
                    <ProductNbr>1</ProductNbr>
                    <Description>1 Description</Description>
                </Product>
            </PacketData>
        </Product>
        <Identifiers>
            <PacketData>
                <Identifiers>
                    <Identifier>
                        <Type>ECCN Nbr</Type>
                        <Value>ECCN-1</Value>
                    </Identifier>
                    <Identifier>
                        <Type>PO Nbr</Type>
                        <Value>PO-1</Value>
                    </Identifier>
                    <Identifier>
                        <Type>SE Nbr</Type>
                        <Value>SE-1</Value>
                    </Identifier>
                </Identifiers>
            </PacketData>
        </Identifiers>
    </ProductsItem>
    <ProductsItem>
        <Product>
            <PacketData>
                <Product>
                    <ProductNbr>2</ProductNbr>
                    <Description>2 Description</Description>
                </Product>
            </PacketData>
        </Product>
        <Identifiers>
            <PacketData>
                <Identifiers>
                    <Identifier>
                        <Type>ECCN Nbr</Type>
                        <Value>ECCN-2</Value>
                    </Identifier>
                    <Identifier>
                        <Type>PO Nbr</Type>
                        <Value>PO-2</Value>
                    </Identifier>
                </Identifiers>
            </PacketData>
        </Identifiers>
    </ProductsItem>
</Products>

Because this is only a snippet of the actual XML structure, please keep in
mind that there can be many more repeating 'ProductsItem' nodes along with
many more repeating child 'Identifier' nodes under each 'ProductsItem' node.

I'm wodering how I can call a template that passes a group of 'ProductsItem'
nodes as a parameter.  The group of 'ProductsItem' nodes being passed as a
parameter cannot have a count of child 'Identifier' nodes exceeding X.  For
example, if the count that cannot be exceed is equal to 3, I want the first
template call to pass the first 'ProductsItem' node as the parameter group
(this is because the first 'ProductsItem' node has 3 child 'Identifier'
nodes.  Because I cannot exceed a maximum 3 Identifier nodes per each
call-template instruction, I would still only want to pass the first
'ProductsItem' node if the count of its child 'Identifier' nodes was only 2.
Passing both 'ProductsItem' nodes would exceed a maximum count of 3
Identifiers per call-template instruction.).  Then, on the second template
call the parameter would contain the second 'ProductsItem' node with two
remaining child 'Identifier' nodes.  Another example would be to set the
maximum number of 'Identifier' nodes per template call to say 10.  In this
case, my first and only template call would pass both 'ProductsItem' node
becuase the combined count of the 'Identifier' nodes is only 5.

I guess what I'm having trouble using the code snippet you provided above
because I don't know how to pass the first few 'ProductsItem' nodes in one
template call.  Then, pick up where that last template call left off passing
the next few 'ProductsItem' nodes as a parameter.  Also, it would be nice to
qualify the count of 'Identifier' nodes by their corresponding child 'Type'
node value.  For example, I only want to include in my count
Identifier[Type='ECCN Nbr' or Type='PO Nbr'].

Thanks so much in advance for any help you can give me ...  I'm definetly
having some trouble here.

Ben



"Yan Leshinsky" <yanl@o...> wrote in message
news:uy%23FlMaREHA.132@T......
> <xsl:for-each
> select="/Products/ProductsItem/Identifiers/Identifier[position() mod 3 =
> 1]">
>     <xsl:call-template name="Foo">
>         <xsl:with-param name="Bar" select="(.|following::Identifier[3 >
> position()])/../.."/>
>     </xsl:call-template>
> </xsl:for-each>
>
> "Ben Schumacher" <bschumacher@i...> wrote in message
> news:umi2jwOREHA.3348@T......
> > Looking at the XML below ...
> >
> > <Products>
> >    <ProductsItem>
> >        <Identifiers>
> >            <Identifier>
> >                <Type>ECCN Nbr</Type>
> >                <Value>12345</Value>
> >            </Identifier>
> >            <Identifier>
> >                <Type>ECCN Nbr</Type>
> >                <Value>54321</Value>
> >            </Identifier>
> >        </Identifiers>
> >    </ProductsItem>
> >    <ProductsItem>
> >        <Identifiers>
> >            <Identifier>
> >                <Type>ECCN Nbr</Type>
> >                <Value>13245</Value>
> >            </Identifier>
> >        </Identifiers>
> >    </ProductsItem>
> >    <ProductsItem>
> >        <Identifiers>
> >            <Identifier>
> >                <Type>ECCN Nbr</Type>
> >                <Value>13245</Value>
> >            </Identifier>
> >            <Identifier>
> >                <Type>ECCN Nbr</Type>
> >                <Value>14235</Value>
> >            </Identifier>
> >            <Identifier>
> >                <Type>ECCN Nbr</Type>
> >                <Value>15234</Value>
> >            </Identifier>
> >        </Identifiers>
> >    </ProductsItem>
> > </Products>
> >
> > I'm trying to call a template and pass a parameter equal to a group of
> > ProductsItem nodes where the count of the combined Identifier child
nodes
> > under each ProductsItem node exceeds no more than a count of three.  For
> > example, the first matching template call would contain a parameter
> > holding
> > the first two ProductsItem nodes because the combined count of the
> > Identifier nodes under these two ProductsItem nodes equals three.  The
> > next
> > call would contain the third positioned (and only the third positioned)
> > ProductsItem node because that ProductsItem node also has a count of
three
> > child Identifier nodes.  Hope this makes sense ...  Any help is greatly
> > appreciated!
> >
> > Ben
> >
> >
>
>




transparent
Print
Mail
Like It
Disclaimer
.

These Archives are provided for informational purposes only and have been generated directly from the Altova mailing list archive system and are comprised of the lists set forth on www.altova.com/list/index.html. Therefore, Altova does not warrant or guarantee the accuracy, reliability, completeness, usefulness, non-infringement of intellectual property rights, or quality of any content on the Altova Mailing List Archive(s), regardless of who originates that content. You expressly understand and agree that you bear all risks associated with using or relying on that content. Altova will not be liable or responsible in any way for any content posted including, but not limited to, any errors or omissions in content, or for any losses or damage of any kind incurred as a result of the use of or reliance on any content. This disclaimer and limitation on liability is in addition to the disclaimers and limitations contained in the Website Terms of Use and elsewhere on the site.

.
.

transparent

transparent