xsl-list
[Top] [All Lists]

[xsl] Grouping into a hierarchy

2007-12-11 10:49:44
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>

--~------------------------------------------------------------------
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>
--~--

<Prev in Thread] Current Thread [Next in Thread>