Wrox Programmer Forums
Go Back   Wrox Programmer Forums > XML > XSLT
|
XSLT General questions and answers about XSLT. For issues strictly specific to the book XSLT 1.1 Programmers Reference, please post to that forum instead.
Welcome to the p2p.wrox.com Forums.

You are currently viewing the XSLT section of the Wrox Programmer to Programmer discussions. This is a community of software programmers and website developers including Wrox book authors and readers. New member registration was closed in 2019. New posts were shut off and the site was archived into this static format as of October 1, 2020. If you require technical support for a Wrox book please contact http://hub.wiley.com
 
Old January 9th, 2007, 11:48 AM
Registered User
 
Join Date: Jan 2007
Posts: 1
Thanks: 0
Thanked 0 Times in 0 Posts
Send a message via Yahoo to sakreck
Default Transforming XML to XML using XSL

Hi I have 5 xsl files . I need to make the parent xml file that the 5 xsl's can parse so I can have 5 child xml's. The 5 xsl's are as below one by one:
1. purchasePart.xsl


<?xml version="1.0"?>

<!--
/// purchasePart.xsl
///
/// 6/15/2004: MiScUS Add hardcoded Company value
///
-->

<xsl:stylesheet xmlns:ifs="urn:ifsworld-com:schemas:order_supply_demand-order_supply_demand" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" exclude-result-prefixes="ifs">
   <xsl:output method="xml" indent="yes"/>
   <xsl:template match="/">
      <xsl:choose>
         <xsl:when test="Catalog/Header[@sender_id='EDR']">
            <xsl:element name="PRODUCT">
               <xsl:element name="SENDER_ID"><xsl:value-of select="Catalog/Header/@sender_id"/></xsl:element>
               <xsl:element name="RECEIVER_ID"><xsl:value-of select="Catalog/Header/@receiver_id"/></xsl:element>
               <xsl:element name="PART_PRODUCT">
                  <xsl:for-each select="Catalog/Line">
                     <xsl:for-each select="ProductId[@product_id_qualifier='BP']">
                        <xsl:element name="PURCHASE_PART">
                           <COMPANY>500</COMPANY>
                           <xsl:element name="PART_NO"><xsl:value-of select="@product_id"/></xsl:element>
                           <xsl:if test="../DesignAttr/@std_pkg_quantity">
                              <xsl:element name="STANDARD_PACK_SIZE"><xsl:value-of select="../DesignAttr/@std_pkg_quantity"/></xsl:element>
                           </xsl:if>
                           <xsl:for-each select="../DescContent/Narrative[@narrative_type='Catalog # Description']">
                              <xsl:element name="DESCRIPTION"><xsl:value-of select="@content"/></xsl:element>
                           </xsl:for-each>
                        </xsl:element>
                     </xsl:for-each>
                  </xsl:for-each>
               </xsl:element>
            </xsl:element>
         </xsl:when>
      </xsl:choose>
   </xsl:template>
 </xsl:stylesheet>

2. Part_catalog.xsl

<?xml version="1.0"?>
<xsl:stylesheet xmlns:ifs="urn:ifsworld-com:schemas:order_supply_demand-order_supply_demand" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" exclude-result-prefixes="ifs">
 <xsl:output method="xml" indent="yes"/>


 <xsl:template match="/">

     <xsl:choose>
          <xsl:when test="Catalog/Header[@sender_id='EDR']">
             <xsl:element name="PRODUCT">
             <xsl:element name="SENDER_ID"><xsl:value-of select="Catalog/Header/@sender_id"/></xsl:element>
             <xsl:element name="RECEIVER_ID"><xsl:value-of select="Catalog/Header/@receiver_id"/></xsl:element>

             <xsl:element name="PART_PRODUCT">

             <xsl:for-each select="Catalog/Line">
                     <xsl:element name="PART_CATALOG">
                 <xsl:for-each select="ProductId[@product_id_qualifier='BP']">
                     <xsl:element name="PART_NO"><xsl:value-of select="@product_id"/></xsl:element>
                 </xsl:for-each>
                     </xsl:element>
             </xsl:for-each>
             </xsl:element></xsl:element>
         </xsl:when>
     </xsl:choose>


 </xsl:template>


 </xsl:stylesheet>

3.Inventory_part.xsl

<?xml version="1.0"?>
<xsl:stylesheet xmlns:ifs="urn:ifsworld-com:schemas:order_supply_demand-order_supply_demand" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" exclude-result-prefixes="ifs">
 <xsl:output method="xml" indent="yes"/>


 <xsl:template match="/">

      <xsl:choose>
          <xsl:when test="Catalog/Header[@sender_id='EDR']">

              <xsl:element name="PRODUCT">
              <xsl:element name="SENDER_ID"><xsl:value-of select="Catalog/Header/@sender_id"/></xsl:element>
            <xsl:element name="RECEIVER_ID"><xsl:value-of select="Catalog/Header/@receiver_id"/></xsl:element>

             <xsl:element name="PART_PRODUCT">

              <xsl:for-each select="Catalog/Line">


                  <xsl:for-each select="ProductId[@product_id_qualifier='BP']">
                      <xsl:element name="INVENTORY_PART">
                      <COMPANY>500</COMPANY>
                      <xsl:element name="PART_NO"><xsl:value-of select="@product_id"/></xsl:element>
                      <xsl:if test="../@lead_time">
                          <xsl:element name="PURCH_LEADTIME"><xsl:value-of select="../@lead_time"/></xsl:element>
                          <xsl:element name="EXPECTED_LEADTIME"><xsl:value-of select="../@lead_time"/></xsl:element>
                      </xsl:if>
                    <xsl:element name="MANUFACTURER_PART_ID"><xsl:value-of select="../ProductId/@product_id"/></xsl:element>
                      <xsl:for-each select="../DescContent/Narrative[@narrative_type='Catalog # Description']">
                          <xsl:element name="DESCRIPTION"><xsl:value-of select="@content"/></xsl:element>
                      </xsl:for-each>
                      </xsl:element>

                  </xsl:for-each>
              </xsl:for-each>

              </xsl:element></xsl:element>

          </xsl:when>

          <xsl:otherwise>

        <xsl:element name="PRODUCT">
             <xsl:element name="SENDER_ID"><xsl:value-of select="Catalog/Header/@sender_id"/></xsl:element>
             <xsl:if test="Catalog/Header/@receiver_id='RAIASBS'">
                <xsl:element name="RECEIVER_ID">37535</xsl:element>
             </xsl:if>

             <xsl:element name="PART_PRODUCT">

              <xsl:for-each select="Catalog/Line">
                    <xsl:element name="INVENTORY_PART">
                    <COMPANY>500</COMPANY>
                  <xsl:for-each select="ProductId">
                    <xsl:if test="product_id_qualifier='BP'">
                          <xsl:element name="PART_NO"><xsl:value-of select="product_id"/></xsl:element>
                      </xsl:if>
                  </xsl:for-each>
                      <xsl:choose>
                          <xsl:when test="Pricing[@base_unit_price='QE']">
                              <xsl:element name="ESTIMATED_MATERIAL_COST"><xsl:value-of select="Pricing/@unit_price div 1"/></xsl:element>
                          </xsl:when>
                          <xsl:when test="Pricing[@base_unit_price='QH']">
                            <xsl:element name="ESTIMATED_MATERIAL_COST"><xsl:value-of select="Pricing/@unit_price div 100"/></xsl:element>
                          </xsl:when>
                          <xsl:when test="Pricing[@base_unit_price='QS']">
                            <xsl:element name="ESTIMATED_MATERIAL_COST"><xsl:value-of select="Pricing/@unit_price div 1000"/></xsl:element>
                          </xsl:when>
                          <xsl:otherwise>
                              <xsl:element name="ESTIMATED_MATERIAL_COST"></xsl:element>
                          </xsl:otherwise>
                      </xsl:choose>
                          </xsl:element>
                  </xsl:for-each>
              </xsl:element>
              </xsl:element>

          </xsl:otherwise>
      </xsl:choose>

  </xsl:template>

 </xsl:stylesheet>

4. Engineering_Part.xsl

<?xml version="1.0"?>
<xsl:stylesheet xmlns:ifs="urn:ifsworld-com:schemas:order_supply_demand-order_supply_demand" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" exclude-result-prefixes="ifs">
 <xsl:output method="xml" indent="yes"/>


 <xsl:template match="/">


             <xsl:element name="PRODUCT">
             <xsl:element name="SENDER_ID"><xsl:value-of select="Catalog/Header/@sender_id"/></xsl:element>
             <xsl:if test="Catalog/Header/@receiver_id='RAIASBS'">
                <xsl:element name="RECEIVER_ID">37535</xsl:element>
             </xsl:if>

             <xsl:element name="PART_PRODUCT">

             <xsl:for-each select="Catalog/Line">
                <xsl:element name="ENG_PART_MASTER">
                      <xsl:for-each select="ProductId">
                        <xsl:if test="product_id_qualifier='BP'">
                              <xsl:element name="PART_NO"><xsl:value-of select="product_id"/></xsl:element>
                          </xsl:if>
                      </xsl:for-each>
                </xsl:element>
             </xsl:for-each>

             </xsl:element>
             </xsl:element>

 </xsl:template>



 </xsl:stylesheet>

5.Purchase_part_supplier.xsl

<?xml version="1.0"?>
<xsl:stylesheet xmlns:ifs="urn:ifsworld-com:schemas:order_supply_demand-order_supply_demand" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" exclude-result-prefixes="ifs">
 <xsl:output method="xml" indent="yes"/>


 <xsl:template match="/">

      <xsl:choose>
          <xsl:when test="Catalog/Header[@sender_id='EDR']">

              <xsl:element name="PRODUCT">
              <xsl:element name="SENDER_ID"><xsl:value-of select="Catalog/Header/@sender_id"/></xsl:element>
             <xsl:element name="RECEIVER_ID"><xsl:value-of select="Catalog/Header/@receiver_id"/></xsl:element>
             <xsl:element name="PART_PRODUCT">

              <xsl:for-each select="Catalog/Line">

                      <xsl:element name="PURCHASE_PART_SUPPLIER">
                      <COMPANY>500</COMPANY>
                      <xsl:for-each select="ProductId[@product_id_qualifier='BP']">
                          <xsl:element name="PART_NO"><xsl:value-of select="@product_id"/></xsl:element>
                      <xsl:if test="../@lead_time">
                          <xsl:element name="VENDOR_MANUF_LEADTIME"><xsl:value-of select="../@lead_time"/></xsl:element>
                      </xsl:if>
                      <xsl:for-each select="../DescContent/Narrative[@narrative_type='Catalog # Description']">
                          <xsl:element name="VENDOR_PART_DESCRIPTION"><xsl:value-of select="@content"/></xsl:element>
                      </xsl:for-each>
                      <xsl:if test="../DesignAttr/@std_pkg_quantity">
                        <xsl:element name="STD_MULTIPLE_QTY"><xsl:value-of select="../DesignAttr/@std_pkg_quantity"/></xsl:element>
                        <xsl:element name="STANDARD_PACK_SIZE"><xsl:value-of select="../DesignAttr/@std_pkg_quantity"/></xsl:element>
                      </xsl:if>
                      <xsl:if test="../DesignAttr/@min_ord_quantity">
                        <xsl:element name="MINIMUM_QTY"><xsl:value-of select="../DesignAttr/@min_ord_quantity"/></xsl:element>
                      </xsl:if>

                      </xsl:for-each>
                      </xsl:element>
              </xsl:for-each>

              </xsl:element>
            </xsl:element>

          </xsl:when>

          <xsl:otherwise>
              <xsl:element name="PRODUCT">
              <xsl:element name="SENDER_ID"><xsl:value-of select="Catalog/Header/@sender_id"/></xsl:element>
             <xsl:if test="Catalog/Header/@receiver_id='RAIASBS'">
                <xsl:element name="RECEIVER_ID">37535</xsl:element>
             </xsl:if>
             <xsl:element name="PART_PRODUCT">
              <xsl:for-each select="Catalog/Line">
                  <xsl:element name="PURCHASE_PART_SUPPLIER">
                  <COMPANY>500</COMPANY>
                        <xsl:for-each select="ProductId">
                              <xsl:if test="product_id_qualifier='BP'">
                                  <xsl:element name="PART_NO"><xsl:value-of select="product_id"/></xsl:element>
                            </xsl:if>
                              <xsl:if test="product_id_qualifier='VP'">
                                  <xsl:element name="VENDOR_PART_NO"><xsl:value-of select="product_id"/></xsl:element>
                            </xsl:if>
                          </xsl:for-each>
                      <xsl:choose>
                          <xsl:when test="Pricing[@base_unit_price='QE']">
                                <xsl:element name="PRICE_UNIT_MEAS">PE</xsl:element>
                                <xsl:element name="PRICE_CONV_FACTOR">1</xsl:element>
                                <xsl:element name="LIST_PRICE"><xsl:value-of select="Pricing/@unit_price"/></xsl:element>
                        </xsl:when>
                          <xsl:when test="Pricing[@base_unit_price='QH']">
                                <xsl:element name="PRICE_UNIT_MEAS">HP</xsl:element>
                                <xsl:element name="PRICE_CONV_FACTOR">100</xsl:element>
                                <xsl:element name="LIST_PRICE"><xsl:value-of select="Pricing/@unit_price"/></xsl:element>
                        </xsl:when>
                          <xsl:when test="Pricing[@base_unit_price='QS']">
                                <xsl:element name="PRICE_UNIT_MEAS">TP</xsl:element>
                                <xsl:element name="PRICE_CONV_FACTOR">1000</xsl:element>
                                <xsl:element name="LIST_PRICE"><xsl:value-of select="Pricing/@unit_price"/></xsl:element>
                        </xsl:when>
                    </xsl:choose>
                  </xsl:element>
              </xsl:for-each>
              </xsl:element>
              </xsl:element>
          </xsl:otherwise>
      </xsl:choose>

  </xsl:template>

 </xsl:stylesheet>

So these are the 5 xsl's . I need the one parent xml that all five can parse so that we can get 5 xml's.
Can anyone help.....







Similar Threads
Thread Thread Starter Forum Replies Last Post
Transforming XML From One Namespace to Another mail4kaja XSLT 1 November 10th, 2008 10:14 AM
Help needed transforming plist to XML by XSL Vartan XSLT 4 September 28th, 2007 03:11 PM
Trouble Transforming an XML SOAP Response with XSL wsessoms XSLT 1 December 20th, 2006 01:47 PM
transforming a XML on the basis of another XML Diex75 XSLT 4 November 9th, 2006 09:11 AM
Please help, xml transforming using xslt !!! daula7 XSLT 0 May 11th, 2006 01:29 PM





Powered by vBulletin®
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
Copyright (c) 2020 John Wiley & Sons, Inc.