Click here to Skip to main content
15,882,114 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
Hi All I have XML file As below,

XML
<?xml version="1.0" encoding="utf-8"?>
<OrderConfirmation xmlns="http://www.test.com/ILSNET/2013/" FileName="MD0220140605233218480.xml" UserName="testuser" DateTimeStamp="6/5/2014 11:32:18 PM">
  <OrderConfirmRequest JoiningCondition=" FROM SIME_MD02_OrderConfirmationUpload_View WITH(NOLOCK) WHERE [SHIPMENT_HEADER.INTERNAL_SHIPMENT_NUM]=@iIntShipNumber" xmlns="http://www.test.com/ILSNET/2013/">
    <APPField FieldName="IShipmentNumber" FieldValue="101" APPColumnName="CAST([SHIPMENT_HEADER.SHIPMENT_ID] AS CHAR(10))" APPTableName="SHIPMENT_HEADER" />
    <APPField FieldName="referenceDocumentNumber" FieldValue="SP25" APPColumnName="CAST([SHIPMENT_HEADER.SHIPMENT_ID] AS CHAR(10))" APPTableName="SHIPMENT_HEADER" />
    <APPField FieldName="totalCost" FieldValue="1.00000" APPColumnName="CAST([SHIPMENT_HEADER.USER_DEF7] as decimal(19,5))" APPTableName="SHIPMENT_HEADER" />
  </OrderConfirmRequest>
  <OrderConfirmRequest JoiningCondition=" FROM SIME_MD02_OrderConfirmationUpload_View WITH(NOLOCK) WHERE [SHIPMENT_HEADER.INTERNAL_SHIPMENT_NUM]=@iIntShipNumber" xmlns="http://www.test.com/ILSNET/2013/">
    <APPField FieldName="IShipmentNumber" FieldValue="102" APPColumnName="CAST([SHIPMENT_HEADER.SHIPMENT_ID] AS CHAR(10))" APPTableName="SHIPMENT_HEADER" />
    <APPField FieldName="referenceDocumentNumber" FieldValue="SP26      " APPColumnName="CAST([SHIPMENT_HEADER.SHIPMENT_ID] AS CHAR(10))" APPTableName="SHIPMENT_HEADER" />
    <APPField FieldName="totalCost" FieldValue="2.00000" APPColumnName="CAST([SHIPMENT_HEADER.USER_DEF7] as decimal(19,5))" APPTableName="SHIPMENT_HEADER" />
  </OrderConfirmRequest>

<OrderConfirmContainer JoiningCondition=" FROM SIME_MD02_OrderConfirmationUpload_View WITH(NOLOCK) WHERE [SHIPMENT_HEADER.INTERNAL_SHIPMENT_NUM]=@iIntShipNumber" xmlns="http://www.test.com/ILSNET/2013/">
    <APPField FieldName="IShipmentNumber" FieldValue="101" APPColumnName="LEFT([SHIPPING_CONTAINER.CONTAINER_ID],25)" APPTableName="SHIPPING_CONTAINER" />
    <APPField FieldName="containerID" FieldValue="C1" APPColumnName="LEFT([SHIPPING_CONTAINER.CONTAINER_ID],25)" APPTableName="SHIPPING_CONTAINER" />
    <APPField FieldName="tyPack" FieldValue="PACK1" APPColumnName="LEFT([SHIPPING_CONTAINER.CONTAINER_TYPE],25)" APPTableName="SHIPPING_CONTAINER" />
  </OrderConfirmContainer>
  <OrderConfirmContainer JoiningCondition=" FROM SIME_MD02_OrderConfirmationUpload_View WITH(NOLOCK) WHERE [SHIPMENT_HEADER.INTERNAL_SHIPMENT_NUM]=@iIntShipNumber" xmlns="http://www.test.com/ILSNET/2013/">
    <APPField FieldName="IShipmentNumber" FieldValue="102" APPColumnName="LEFT([SHIPPING_CONTAINER.CONTAINER_ID],25)" APPTableName="SHIPPING_CONTAINER" />
    <APPField FieldName="containerID" FieldValue="C2" APPColumnName="LEFT([SHIPPING_CONTAINER.CONTAINER_ID],25)" APPTableName="SHIPPING_CONTAINER" />
    <APPField FieldName="tyPack" FieldValue="PACK2" APPColumnName="LEFT([SHIPPING_CONTAINER.CONTAINER_TYPE],25)" APPTableName="SHIPPING_CONTAINER" />
  </OrderConfirmContainer>

<OrderConfirmDetail JoiningCondition=" FROM SIME_MD02_OrderConfirmationUpload_View WITH(NOLOCK) WHERE [SHIPMENT_HEADER.INTERNAL_SHIPMENT_NUM]=@iIntShipNumber" xmlns="http://www.test.com/ILSNET/2013/">
    <APPField FieldName="IShipmentNumber" FieldValue="101" APPColumnName="CAST([SHIPMENT_DETAIL.USER_DEF2] as decimal(3))" APPTableName="SHIPMENT_DETAIL" />
    <APPField FieldName="lineNumber" FieldValue="1" APPColumnName="CAST([SHIPMENT_DETAIL.USER_DEF2] as decimal(3))" APPTableName="SHIPMENT_DETAIL" />
  </OrderConfirmDetail>
  <OrderConfirmDetail JoiningCondition=" FROM SIME_MD02_OrderConfirmationUpload_View WITH(NOLOCK) WHERE [SHIPMENT_HEADER.INTERNAL_SHIPMENT_NUM]=@iIntShipNumber" xmlns="http://www.test.com/ILSNET/2013/">
    <APPField FieldName="IShipmentNumber" FieldValue="102" APPColumnName="CAST([SHIPMENT_DETAIL.USER_DEF2] as decimal(3))" APPTableName="SHIPMENT_DETAIL" />
    <APPField FieldName="lineNumber" FieldValue="2" APPColumnName="CAST([SHIPMENT_DETAIL.USER_DEF2] as decimal(3))" APPTableName="SHIPMENT_DETAIL" />
  </OrderConfirmDetail>
</OrderConfirmation>


I need to generate XML file as below,

XML
<?xml version="1.0" encoding="utf-8"?>
<OrderConfirmation xmlns="http://www.test.com/ILSNET/2013/" FileName="MD0220140605233218480.xml" UserName="testuser" DateTimeStamp="6/5/2014 11:32:18 PM">
  <OrderConfirmRequest JoiningCondition=" FROM SIME_MD02_OrderConfirmationUpload_View WITH(NOLOCK) WHERE [SHIPMENT_HEADER.INTERNAL_SHIPMENT_NUM]=@iIntShipNumber" xmlns="http://www.test.com/ILSNET/2013/">
    <APPField FieldName="IShipmentNumber" FieldValue="101" APPColumnName="CAST([SHIPMENT_HEADER.SHIPMENT_ID] AS CHAR(10))" APPTableName="SHIPMENT_HEADER" />
    <APPField FieldName="referenceDocumentNumber" FieldValue="SP25" APPColumnName="CAST([SHIPMENT_HEADER.SHIPMENT_ID] AS CHAR(10))" APPTableName="SHIPMENT_HEADER" />
    <APPField FieldName="totalCost" FieldValue="1.00000" APPColumnName="CAST([SHIPMENT_HEADER.USER_DEF7] as decimal(19,5))" APPTableName="SHIPMENT_HEADER" />
<OrderConfirmContainer JoiningCondition=" FROM SIME_MD02_OrderConfirmationUpload_View WITH(NOLOCK) WHERE [SHIPMENT_HEADER.INTERNAL_SHIPMENT_NUM]=@iIntShipNumber" xmlns="http://www.test.com/ILSNET/2013/">
    <APPField FieldName="IShipmentNumber" FieldValue="101" APPColumnName="LEFT([SHIPPING_CONTAINER.CONTAINER_ID],25)" APPTableName="SHIPPING_CONTAINER" />
    <APPField FieldName="containerID" FieldValue="C1" APPColumnName="LEFT([SHIPPING_CONTAINER.CONTAINER_ID],25)" APPTableName="SHIPPING_CONTAINER" />
    <APPField FieldName="tyPack" FieldValue="PACK1" APPColumnName="LEFT([SHIPPING_CONTAINER.CONTAINER_TYPE],25)" APPTableName="SHIPPING_CONTAINER" />
<OrderConfirmDetail JoiningCondition=" FROM SIME_MD02_OrderConfirmationUpload_View WITH(NOLOCK) WHERE [SHIPMENT_HEADER.INTERNAL_SHIPMENT_NUM]=@iIntShipNumber" xmlns="http://www.test.com/ILSNET/2013/">
    <APPField FieldName="IShipmentNumber" FieldValue="101" APPColumnName="CAST([SHIPMENT_DETAIL.USER_DEF2] as decimal(3))" APPTableName="SHIPMENT_DETAIL" />
    <APPField FieldName="lineNumber" FieldValue="1" APPColumnName="CAST([SHIPMENT_DETAIL.USER_DEF2] as decimal(3))" APPTableName="SHIPMENT_DETAIL" />
  </OrderConfirmDetail>
  </OrderConfirmContainer>
  </OrderConfirmRequest>
  <OrderConfirmRequest JoiningCondition=" FROM SIME_MD02_OrderConfirmationUpload_View WITH(NOLOCK) WHERE [SHIPMENT_HEADER.INTERNAL_SHIPMENT_NUM]=@iIntShipNumber" xmlns="http://www.test.com/ILSNET/2013/">
    <APPField FieldName="IShipmentNumber" FieldValue="102" APPColumnName="CAST([SHIPMENT_HEADER.SHIPMENT_ID] AS CHAR(10))" APPTableName="SHIPMENT_HEADER" />
    <APPField FieldName="referenceDocumentNumber" FieldValue="SP26      " APPColumnName="CAST([SHIPMENT_HEADER.SHIPMENT_ID] AS CHAR(10))" APPTableName="SHIPMENT_HEADER" />
    <APPField FieldName="totalCost" FieldValue="2.00000" APPColumnName="CAST([SHIPMENT_HEADER.USER_DEF7] as decimal(19,5))" APPTableName="SHIPMENT_HEADER" />



  <OrderConfirmContainer JoiningCondition=" FROM SIME_MD02_OrderConfirmationUpload_View WITH(NOLOCK) WHERE [SHIPMENT_HEADER.INTERNAL_SHIPMENT_NUM]=@iIntShipNumber" xmlns="http://www.test.com/ILSNET/2013/">
    <APPField FieldName="IShipmentNumber" FieldValue="102" APPColumnName="LEFT([SHIPPING_CONTAINER.CONTAINER_ID],25)" APPTableName="SHIPPING_CONTAINER" />
    <APPField FieldName="containerID" FieldValue="C2" APPColumnName="LEFT([SHIPPING_CONTAINER.CONTAINER_ID],25)" APPTableName="SHIPPING_CONTAINER" />
    <APPField FieldName="tyPack" FieldValue="PACK2" APPColumnName="LEFT([SHIPPING_CONTAINER.CONTAINER_TYPE],25)" APPTableName="SHIPPING_CONTAINER" />
<OrderConfirmDetail JoiningCondition=" FROM SIME_MD02_OrderConfirmationUpload_View WITH(NOLOCK) WHERE [SHIPMENT_HEADER.INTERNAL_SHIPMENT_NUM]=@iIntShipNumber" xmlns="http://www.test.com/ILSNET/2013/">
    <APPField FieldName="IShipmentNumber" FieldValue="102" APPColumnName="CAST([SHIPMENT_DETAIL.USER_DEF2] as decimal(3))" APPTableName="SHIPMENT_DETAIL" />
    <APPField FieldName="lineNumber" FieldValue="2" APPColumnName="CAST([SHIPMENT_DETAIL.USER_DEF2] as decimal(3))" APPTableName="SHIPMENT_DETAIL" />
  </OrderConfirmDetail>
  </OrderConfirmContainer>

</OrderConfirmRequest>

</OrderConfirmation>



I have sample XSLT as below,

XML
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:APP="http://www.manh.com/ILSNET/2013/">
  <xsl:output method="xml"/>
  <xsl:template match="APP:OrderConfirmation">
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:int="http://www.acndms.com/HD/WMS/Interface">
      <!--<soapenv:Header/>-->
      <OrderConfirmation>
        <xsl:for-each select="./APP:OrderConfirmRequest">
          <xsl:variable name="iSH" select="position()"/>
          <xsl:variable name="ISHNumber"><xsl:value-of select="(//APP:OrderConfirmRequest/APP:APPField[@FieldName = 'IShipmentNumber']/@FieldValue)[$iSH]"/></xsl:variable>
        <OrderConfirmRequest>
          <referenceDocumentNumber>
            <xsl:value-of  disable-output-escaping="yes" select="(//APP:OrderConfirmRequest/APP:APPField[@FieldName = 'referenceDocumentNumber']/@FieldValue)[$iSH]"/>
          </referenceDocumentNumber>
          <totalCost>
            <xsl:value-of  disable-output-escaping="yes" select="(//APP:OrderConfirmRequest/APP:APPField[@FieldName = 'totalCost']/@FieldValue)[$iSH]"/>
          </totalCost>
          <xsl:for-each select="//APP:OrderConfirmContainer//APP:APPField[@FieldName = 'IShipmentNumber']/@FieldValue">
            <xsl:variable name="iSC" select="position()"/>
            <orderConfirmContainer>
              <containerId>
                <xsl:value-of  disable-output-escaping="yes" select="(//APP:OrderConfirmContainer/APP:APPField[@FieldName = 'containerId']/@FieldValue)[$iSC]"/>
              </containerId>
              <tyPack>
                <xsl:value-of  disable-output-escaping="yes" select="(//APP:OrderConfirmContainer/APP:APPField[@FieldName = 'tyPack']/@FieldValue)[$iSC]"/>
              </tyPack>
              <xsl:for-each select="//APP:OrderConfirmContainer//APP:OrderConfirmContainer//APP:OrderConfirmDetail[@FieldName = 'IShipmentNumber']/@FieldValue">
                <xsl:variable name="i" select="position()"/>
                <orderConfirmDetails>
                  <lineNumber>
                    <xsl:value-of  disable-output-escaping="yes" select="(//APP:OrderConfirmDetail/APP:APPField[@FieldName = 'lineNumber']/@FieldValue)[$i]"/>
                  </lineNumber>
                  <lineNumberSuffix>
                    <xsl:value-of  disable-output-escaping="yes" select="(//APP:OrderConfirmDetail/APP:APPField[@FieldName = 'lineNumberSuffix']/@FieldValue)[$i]"/>
                  </lineNumberSuffix>
                  </orderConfirmDetails>
              </xsl:for-each>
            </orderConfirmContainer>
          </xsl:for-each>
        </OrderConfirmRequest>
        </xsl:for-each>
      </OrderConfirmation>
    </soapenv:Envelope>
  </xsl:template>

  <xsl:template name="padRight">
    <xsl:param name="stringToPad" />
    <xsl:param name="length" select="0" />
    <xsl:param name="chars" select="' '" />
    <xsl:choose>
      <xsl:when test="not($length) or not($chars) or 0 &gt; $length">
        <xsl:value-of  disable-output-escaping="yes" select="$stringToPad" />
      </xsl:when>
      <xsl:otherwise>
        <xsl:variable name="string" select="concat($stringToPad, $chars, $chars, $chars, $chars, $chars, $chars, $chars, $chars, $chars)" />
        <xsl:choose>
          <xsl:when test="string-length($string) &gt;= $length">
            <xsl:value-of  disable-output-escaping="yes" select="substring($string, 1, $length)" />
          </xsl:when>
          <xsl:otherwise>
            <xsl:call-template name="padRight">
              <xsl:with-param name="stringToPad" select="$string" />
              <xsl:with-param name="length" select="$length" />
              <xsl:with-param name="chars" select="$chars" />
            </xsl:call-template>
          </xsl:otherwise>
        </xsl:choose>
      </xsl:otherwise>
    </xsl:choose>
  </xsl:template>
</xsl:stylesheet>


Please help me how i can create XSLT File to get expected XML file.(if any tool/code)

It is very urgent for me.

Thanks in advance.
Posted

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900