<SHIPTO>
<SHIPTONAME>
<xsl:value-of select="OrderShipping_Details/Name"/>
</SHIPTONAME>
<ADDRESS1>
<xsl:value-of select="OrderShipping_Details/Address1"/>
</ADDRESS1>
<ADDRESS2>
<xsl:value-of select="OrderShipping_Details/Address2"/>
</ADDRESS2>
<CITY>
<xsl:value-of select="OrderShipping_Details/City"/>
</CITY>
<STATE>
<xsl:value-of select="OrderShipping_Details/State"/>
</STATE>
<ZIP>
<xsl:value-of select="OrderShipping_Details/PostalCode"/>
</ZIP>
<COUNTRY>
<xsl:value-of select="OrderShipping_Details/Country"/>
</COUNTRY>
<xsl:apply templates select="OrderShipping_Details/ShipMethod"/>
</SHIPTO>
还有转换我们的运送方法到合作者,我们调用这个模板:
<xsl:template match="ShipMethod">
<xsl:element name="SHIPPING_METHOD">
<xsl:choose>
<xsl:when test=".[.=’UPS Next Day Air Saver’]">ups_next_day</xsl:when>
<xsl:when test=".[.=’Standard Shipping’]">ups_ground</xsl:when>
<xsl:when test=".[.=’US Postal Service’]">us_firstclass</xsl:when>
<xsl:when test=".[.=’Federal Express’]">us_fedex_priority</xsl:when>
<xsl:otherwise>UNKNOWN ?<xsl:value-of select="."/></xsl:otherwise>
</xsl:choose>
</xsl:element>
</xsl:template>
XSL文件是这个应用程序真正的心脏。在步骤一中,处理程序知道如何把我们的数据转入我们内部的XML订单文档。文档元素之一指示了XSL文件的目录位置。在此步骤中,处理程序整理此文件,并使用它来转换到数据包和标签。在步骤三中,此处理程序动态地使用这些在标签中的信息来发送数据包。
尽管,当前的系统要求支持发送订单给两个合作伙伴,我们能够简单的扩展这个应用程序支持多个伙伴。系统总是以同样的方式做步骤一和步骤二。我们可以简单地写一个XSL文件,这个文件将用来解决转换我们的数据时的细节问题。
文章来源于领测软件测试网 https://www.ltesting.net/