RE: [xsl] Combining nodes

Subject: RE: [xsl] Combining nodes
From: "Bordeman, Chris" <Chris.Bordeman@xxxxxxxxxxxxxxxxx>
Date: Thu, 6 Nov 2008 10:25:18 -0600
OK I figured it out.  I created the two variables like I said, unioned
them together (never did that before), and used the '|' operator to get
the appropriate field when I needed to ouput them.  That last bit was a
stab in the dark that worked. <g>

Chris Bordeman
Senior Software Developer
AppOne, Inc., a Wolters Kluwer Financial Services Company
"Connecting dealers & lenders"
http://www.appone.net
http://www.dmsone.net
225. 754. 5912 (P)
866. 422. 9910 (F)


-----Original Message-----
From: Bordeman, Chris [mailto:Chris.Bordeman@xxxxxxxxxxxxxxxxx]
Sent: Thursday, November 06, 2008 9:23 AM
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Subject: RE: [xsl] Combining nodes

I CAN use XSLT 2.0 and would prefer to do so.

Here is a sample input XML:

<?xml version="1.0"?>
<Input>
	<Fees>
      <Fee>
        <Code>title</Code>
        <Amount>5.00</Amount>
        <IsPublicOfficial>true</IsPublicOfficial>
      </Fee>
      <Fee>
        <Code>license</Code>
        <Amount>10.00</Amount>
        <IsPublicOfficial>true</IsPublicOfficial>
      </Fee>
      <Fee>
        <Code>inspection</Code>
        <Amount>4.00</Amount>
        <IsPublicOfficial>false</IsPublicOfficial>
      </Fee>
    </Fees>
    <Products>
      <DealStructureProduct>
        <Code>vsc</Code>
        <SellingPrice>210.00</SellingPrice>
        <IsInsurance>false</IsInsurance>
      </DealStructureProduct>
      <DealStructureProduct>
        <Code>gap</Code>
        <SellingPrice>220.00</SellingPrice>
        <IsInsurance>true</IsInsurance>
      </DealStructureProduct>
      <DealStructureProduct>
        <Code>ppm</Code>
        <SellingPrice>250.00</SellingPrice>
        <IsInsurance>false</IsInsurance>
      </DealStructureProduct>
      <DealStructureProduct>
        <Code>elg</Code>
        <SellingPrice>260.00</SellingPrice>
        <IsInsurance>false</IsInsurance>
      </DealStructureProduct>
    </Products>
</Input>


The output XML should look like this:

<FieldValuePair name="label1" value="inspection"/>
<FieldValuePair name="value1" value="4.00"/>

<FieldValuePair name="label2" value="vsc"/>
<FieldValuePair name="value2" value="210.00"/>

<FieldValuePair name="label3" value="ppm"/>
<FieldValuePair name="value3" value="250.00"/>

As you can see, the first set of FieldValuePairs came from the /Fees
area of the input, and the 2nd and 3rd set of output nodes came from the
/Products nodes.  The output consists of values taken from Fees where
IsPublicOfficial ne 'true' and values taken from the Product nodes where
IsInsurance ne 'true'.  The output can contain a maximum of 3 pairs, and
the Fees must be exhausted before Products can be used.

I'm thinking I need to create 2 variables, one for the Fees nodes, one
for the Product nodes, and then combine them somehow?  I guess I need to
know how to create the variables (since the output nodes don't look like
the source nodes) and how to join them in the end.  Then, I can ouput
them how I like (max 3 items allowed in output).

Thanks very much for any help that can be provided.

Current Thread