[xsl] Grouping into a hierarchy

Subject: [xsl] Grouping into a hierarchy
From: Tim <timlhunt@xxxxxxxxxxxxxx>
Date: Tue, 11 Dec 2007 12:49:02 -0500
Hi. I have a newbie question. I have been able to extract data from two tables, into a work area like below. The data is below with a stlesheet to try to merge them, but I get all the detail.

<?xml version="1.0" encoding="UTF-8"?>
<WorkData>
   <Headers>
       <Header>
           <PO_NBR>138513</PO_NBR>
           <PROC_IND>N</PROC_IND>
       </Header>
       <Header>
           <PO_NBR>138522</PO_NBR>
           <PROC_IND>N</PROC_IND>
       </Header>
   </Headers>

   <Detail>
       <LineItem>
           <PO_NBR>138513</PO_NBR>
           <LINE_ITEM_NBR>1</LINE_ITEM_NBR>
           <BG_ID>VL 81268</BG_ID>
       </LineItem>
       <LineItem>
           <PO_NBR>138513</PO_NBR>
           <LINE_ITEM_NBR>2</LINE_ITEM_NBR>
           <BG_ID>VL 81200</BG_ID>
       </LineItem>
       <LineItem>
           <PO_NBR>138522</PO_NBR>
           <LINE_ITEM_NBR>1</LINE_ITEM_NBR>
           <BG_ID>VL 81265</BG_ID>
       </LineItem>
   </Detail>
</WorkData>

<!-- expected Merged hierarchy output-->
<WorkData>
   <Orders>
       <Order>
           <hdr>
               <PO_NBR>138513</PO_NBR>
               <PROC_IND>N</PROC_IND>
           </hdr>
           <LineItems>
               <LineItem>
                   <PO_NBR>138513</PO_NBR>
                   <LINE_ITEM_NBR>1</LINE_ITEM_NBR>
                   <BG_ID>VL 81268</BG_ID>
               </LineItem>
               <LineItem>
                   <PO_NBR>138513</PO_NBR>
                   <LINE_ITEM_NBR>2</LINE_ITEM_NBR>
                   <BG_ID>VL 81200</BG_ID>
               </LineItem>
           </LineItems>
       </Order>
       <Order>
           <hdr>
               <PO_NBR>138522</PO_NBR>
               <PROC_IND>N</PROC_IND>
           </hdr>
           <LineItems>
               <LineItem>
                   <PO_NBR>138522</PO_NBR>
                   <LINE_ITEM_NBR>1</LINE_ITEM_NBR>
                   <BG_ID>VL 81265</BG_ID>
               </LineItem>
           </LineItems>
       </Order>
   </Orders>
</WorkData>

<!-- My XSL so far gets all the detail, rather than associating detail with the correct header portion: -->
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
<xsl:template match="/WorkData/Headers/Header">
<xsl:for-each select="/WorkData/Headers/Header">
<xsl:value-of select="."/>
<xsl:for-each select="/WorkData/Detail/LineItem/*">
<xsl:value-of select="."/>
<xsl:text>&#xA;</xsl:text>
</xsl:for-each>
<xsl:text>-+-&#xA;</xsl:text>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>


Current Thread