[BTS] 可能会经常用来参考的一段XSLT

  涵盖了最近重新学习xslt时的一些基本用法。

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fn="http://www.w3.org/2005/xpath-functions">
    
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>

<!--
/*[local-name()='Root' and namespace-uri()='http://schemas.microsoft.com/BizTalk/2003/aggschema']/*[local-name()='InputMessagePart_0' and namespace-uri()='']/*[local-name()='ORDERS' and namespace-uri()='http://xxx']/*[local-name()='C000_MsgHeader' and namespace-uri()='http://xxx']/*[local-name()='DocNo' and namespace-uri()='http://xxx']

/*[local-name()='Root' and namespace-uri()='http://schemas.microsoft.com/BizTalk/2003/aggschema']/*[local-name()='InputMessagePart_0' and namespace-uri()='']/*[local-name()='ORDERS' and namespace-uri()='http://xxxp']/*[local-name()='L150_Sub_line_level' and namespace-uri()='http://xxx']/*[local-name()='L150_OrderSubLineBasic' and namespace-uri()='http://xxx']/*[local-name()='LineBasic_SellersPartNo' and namespace-uri()='http://xxx']
-->
    
<xsl:template match="/">
        
<xsl:call-template name="EricXu">
            
<xsl:with-param name="L100_ItemNum" select="'L100'"/>
            
<xsl:with-param name="L305_RefNum" select="'L305'"/>
            
<xsl:with-param name="C000_DocNo" select="'C000'"/>
        
</xsl:call-template>
    
</xsl:template>
    
<xsl:template name="EricXu">
        
<xsl:param name="L100_ItemNum"/>
        
<xsl:param name="L305_RefNum"/>
        
<xsl:param name="C000_DocNo"/>
        
<xsl:for-each select="//*[(local-name()='L150_Sub_line_level' or local-name()='L155_Third_Line_Item') and namespace-uri()='http://xxx']">
            
<xsl:element name="T_ORDER_ITEMS_M">
                
<xsl:element name="ITM_NUMBER">
                    
<xsl:value-of select="concat(*/*[local-name()='LineBasic_ItemNo' and namespace-uri()='http://xxxx'],'00')"/>
                
</xsl:element>
                
<xsl:choose>
                    
<xsl:when test="local-name()='L150_Sub_line_level'">
                        
<xsl:element name="HG_LV_ITEM">
                            
<xsl:value-of select="concat($L100_ItemNum,'00')"/>
                        
</xsl:element>
                        
<xsl:element name="MATERIAL">
                            
<xsl:value-of select="*/*[local-name()='LineBasic_BuyersPartNo' and namespace-uri()='http://xxx']"/>
                        
</xsl:element>
                        
<xsl:element name="ITEM_CATEG">ZCA6</xsl:element>
                    
</xsl:when>
                    
<xsl:otherwise>
                        
<xsl:element name="HG_LV_ITEM"/>
                        
<xsl:element name="MATERIAL">
                            
<xsl:value-of select="*/*[local-name()='LineBasic_SellersPartNo' and namespace-uri()='http://xxx']"/>
                        
</xsl:element>
                        
<xsl:element name="ITEM_CATEG">ZCA7</xsl:element>
                    
</xsl:otherwise>
                
</xsl:choose>
                
<xsl:element name="PLANT">2100</xsl:element>
                
<xsl:element name="STOR">2105</xsl:element>
                
<xsl:element name="PO_ITM_NO">
                    
<xsl:value-of select="$L305_RefNum"/>
                
</xsl:element>
                
<xsl:element name="PURCH_NO_S">
                    
<xsl:value-of select="$C000_DocNo"/>
                
</xsl:element>
            
</xsl:element>
        
</xsl:for-each>
    
</xsl:template>

</xsl:stylesheet> 

子节点下的子节点过滤及函数

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:template match="/">
        <xsl:variable name="Date012" select="/*/*/*[local-name()='E2EDK03' and child::*[local-name()='IDDAT']='012']/*[local-name()='DATUM']"/>
        <html>
            <body>
                <h2>
                    <xsl:value-of select="$Date012"/>
                </h2>
                <h2>
                    <xsl:value-of select="substring($Date012,1,4)"/>
                </h2>
                <h2>
                    <xsl:value-of select="substring($Date012,5,2)"/>
                </h2>
                <h2>
                    <xsl:value-of select="substring($Date012,7,2)"/>
                </h2>
                <h2>
                    <xsl:value-of select="concat(substring($Date012,1,4),'-', substring($Date012,5,2),'-', substring($Date012,7,2))"/>
                </h2>
                <h2>
concat(substring($Date012,1,4),'-', substring($Date012,5,2),'-', substring($Date012,7,2))
</h2>
            </body>
        </html>
    </xsl:template>
</xsl:stylesheet>

 又一个很复杂的Mapping,普通Mapping搞不定了,只能用个xslt文件来弄了。

  1 <?xml version="1.0" encoding="UTF-8"?>
  2 <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fn="http://www.w3.org/2005/xpath-functions">
  3     <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
  4     <xsl:template match="/*[local-name()='Receive']/*[local-name()='idocData']">
  5         <xsl:element name="putOrder" namespace="http://eyefreight.com/schema/async/PutOrder/v1">
  6             <xsl:element name="messageId"/>
  7             <xsl:element name="correlationMessageId"/>
  8             <xsl:element name="timestamp"/>
  9             <xsl:element name="senderSystem"/>
 10             <xsl:element name="sender"/>
 11             <xsl:element name="receiver"/>
 12             <xsl:call-template name="order"/>
 13             <xsl:call-template name="handlingUnits"/>
 14         </xsl:element>
 15     </xsl:template>
 16     <xsl:template name="order">
 17         <xsl:param name="pOrderType" select="*[local-name()='E2EDK07001GRP']/*[local-name()='E2EDK07001']/*[local-name()='ACTION']"/>
 18         <xsl:element name="order"/>
 19         <xsl:element name="orderNumber" namespace="http://eyefreight.com/schema/model/order/v2">
 20             <xsl:value-of select="*[local-name()='E2EDK07001GRP']/*[local-name()='E2EDK07001']/*[local-name()='VBELN']"/>
 21         </xsl:element>
 22         <xsl:element name="orderType"/>
 23         <xsl:element name="outbound"/>
 24         <xsl:element name="flowCode"/>
 25         <xsl:element name="routingCode"/>
 26         <xsl:element name="status">
 27             <xsl:value-of select="$pOrderType"/>
 28         </xsl:element>
 29         <xsl:element name="origin">
 30             <xsl:element name="branchCode">
 31                 <xsl:value-of select="*[local-name()='E2EDK08001GRP']/*[local-name()='E2EDP07GRP']/*[local-name()='E2EDP09001GRP'][1]/*[local-name()='E2EDP09001']/*[local-name()='WERKS']"/>
 32             </xsl:element>
 33             <xsl:element name="branchName"/>
 34             <xsl:element name="address">
 35                 <xsl:element name="code"/>
 36                 <xsl:element name="street"/>
 37                 <xsl:element name="houseNumber"/>
 38                 <xsl:element name="postalCode"/>
 39                 <xsl:element name="city"/>
 40                 <xsl:element name="district"/>
 41                 <xsl:element name="countryCode"/>
 42             </xsl:element>
 43         </xsl:element>
 44         <xsl:element name="destination">
 45             <xsl:element name="branchCode">
 46                 <xsl:value-of select="*[local-name()='E2EDK07001GRP']/*[local-name()='E2EDK07001']/*[local-name()='INCO2']"/>
 47             </xsl:element>
 48             <xsl:element name="branchName"/>
 49             <xsl:element name="address">
 50                 <xsl:element name="code"/>
 51                 <xsl:element name="street">
 52                     <xsl:value-of select="*[local-name()='E2EDK08001GRP']/*[local-name()='E2EDKA2001' and *[local-name()='PARVW']='WE']/*[local-name()='STRAS']"/>
 53                 </xsl:element>
 54                 <xsl:element name="houseNumber"/>
 55                 <xsl:element name="postalCode"/>
 56                 <xsl:element name="city">
 57                     <xsl:value-of select="*[local-name()='E2EDK08001GRP']/*[local-name()='E2EDKA2001' and *[local-name()='PARVW']='WE']/*[local-name()='ORT01']"/>
 58                 </xsl:element>
 59                 <xsl:element name="district">
 60                     <xsl:value-of select="*[local-name()='E2EDK07001GRP']/*[local-name()='ZE1EDK07000']/*[local-name()='REGIO']"/>
 61                 </xsl:element>
 62                 <xsl:element name="countryCode">
 63                     <xsl:value-of select="*[local-name()='E2EDK07001GRP']/*[local-name()='ZE1EDK07000']/*[local-name()='LAND1D']"/>
 64                 </xsl:element>
 65             </xsl:element>
 66         </xsl:element>
 67         <xsl:element name="incoterm">
 68             <xsl:value-of select="*[local-name()='E2EDK07001GRP']/*[local-name()='E2EDK07001']/*[local-name()='INCO1']"/>
 69         </xsl:element>
 70         <xsl:element name="allocatable"/>
 71         <xsl:element name="registrationDate">
 72             <xsl:value-of select="*[local-name()='EDI_DC40']/*[local-name()='CREDAT']"/>
 73             <xsl:value-of select="*[local-name()='EDI_DC40']/*[local-name()='CRETIM']"/>
 74         </xsl:element>
 75         <xsl:element name="plannedCollectionTimestamp"/>
 76         <xsl:element name="earliestPlannedCollectionTimestamp"/>
 77         <xsl:element name="plannedDeliveryTimestamp">
 78             <xsl:value-of select="*[local-name() = 'E2EDK08001GRP']/*[local-name() = 'E2EDK06' and *[local-name()='IDDAT']='001']/*[local-name() = 'DATUM']"/>
 79         </xsl:element>
 80         <xsl:element name="earliestPlannedDeliveryTimestamp"/>
 81         <xsl:element name="plannedCosts"/>
 82         <xsl:element name="additionalCosts"/>
 83         <xsl:element name="preferredShippingType">
 84             <xsl:value-of select="*[local-name()='E2EDK07001GRP']/*[local-name()='E2EDK07001']/*[local-name()='VSART_EF']"/>
 85         </xsl:element>
 86         <xsl:element name="urgencyLevel">0</xsl:element>
 87         <xsl:call-template name="order_attributes"/>
 88         <xsl:element name="ownerAccount"/>
 89         <xsl:call-template name="order_packages"/>
 90         <xsl:element name="orderSubRoutes"/>
 91         <xsl:element name="deliveryWindows"/>
 92         <xsl:element name="remarks">
 93             <xsl:element name="remark">
 94                 <xsl:element name="body">IDoc缺节点</xsl:element>
 95                 <xsl:element name="type">DELIVERY_INSTRUCTION</xsl:element>
 96                 <xsl:element name="remarkTimestamp">
 97                     <xsl:value-of select="*[local-name()='EDI_DC40']/*[local-name()='CREDAT']"/>
 98                     <xsl:value-of select="*[local-name()='EDI_DC40']/*[local-name()='CRETIM']"/>
 99                 </xsl:element>
100             </xsl:element>
101         </xsl:element>
102         <xsl:element name="notifiyingParties">
103             <xsl:element name="party">
104                 <xsl:element name="email">
105                     <xsl:value-of select="*[local-name()='E2EDK07001GRP']/*[local-name()='ZE1EDK07000']/*[local-name()='CREATED_BY']"/>
106                 </xsl:element>
107                 <xsl:element name="event">
108             
109             </xsl:element>
110             </xsl:element>
111         </xsl:element>
112     </xsl:template>
113     <xsl:template name="order_attributes">
114         <xsl:element name="customAttributes" namespace="http://eyefreight.com/schema/model/types/v1">
115             <xsl:element name="attribute">
116                 <xsl:element name="name">TRANSPORT_FLOW</xsl:element>
117                 <xsl:element name="value">
118                     <xsl:value-of select="*[local-name()='E2EDK07001GRP']/*[local-name()='ZE1EDK07000']/*[local-name()='TRSPT_FLOW']"/>
119                 </xsl:element>
120             </xsl:element>
121             <xsl:element name="attribute">
122                 <xsl:element name="name">TRANSPORT_MODE</xsl:element>
123                 <xsl:element name="value">
124                     <xsl:value-of select="*[local-name()='E2EDK07001GRP']/*[local-name()='ZE1EDK07000']/*[local-name()='VSARTD']"/>
125                 </xsl:element>
126             </xsl:element>
127             <!-- !!! -->
128             <xsl:element name="attribute">
129                 <xsl:element name="name">CONSIGNEE</xsl:element>
130                 <xsl:element name="value">
131                     <xsl:value-of select="*[local-name()='E2EDK08001GRP']/*[local-name()='E2EDKA2001' and *[local-name()='PARVW']='WE']/*[local-name()='NAME1']"/>
132                     <xsl:value-of select="*[local-name()='E2EDK08001GRP']/*[local-name()='E2EDKA2001' and *[local-name()='PARVW']='WE']/*[local-name()='NAME2']"/>
133                     <xsl:value-of select="*[local-name()='E2EDK08001GRP']/*[local-name()='E2EDKA2001' and *[local-name()='PARVW']='WE']/*[local-name()='NAME3']"/>
134                     <xsl:value-of select="*[local-name()='E2EDK08001GRP']/*[local-name()='E2EDKA2001' and *[local-name()='PARVW']='WE']/*[local-name()='NAME4']"/>
135                     <xsl:value-of select="*[local-name()='E2EDK08001GRP']/*[local-name()='E2EDKA2001' and *[local-name()='PARVW']='WE']/*[local-name()='STRAS']"/>
136                     <xsl:value-of select="*[local-name()='E2EDK08001GRP']/*[local-name()='E2EDKA2001' and *[local-name()='PARVW']='WE']/*[local-name()='STRS2']"/>
137                     <xsl:value-of select="*[local-name()='E2EDK08001GRP']/*[local-name()='E2EDKA2001' and *[local-name()='PARVW']='WE']/*[local-name()='PSTLZ']"/>
138                 </xsl:element>
139             </xsl:element>
140             <!-- !!! -->
141             <xsl:element name="attribute">
142                 <xsl:element name="name">PICKUP_CONTACTS</xsl:element>
143                 <xsl:element name="value">没找到IDoc节点</xsl:element>
144             </xsl:element>
145             <!-- !!! -->
146             <xsl:element name="attribute">
147                 <xsl:element name="name">DELIVERY_ADDRESS</xsl:element>
148                 <xsl:element name="value">MAPPING信息不全</xsl:element>
149             </xsl:element>
150             <xsl:element name="attribute">
151                 <xsl:element name="name">DELIVERY_CONTACTS</xsl:element>
152                 <xsl:element name="value">
153                     <xsl:value-of select="*[local-name()='E2EDK08001GRP']/*[local-name()='E2EDKA2001' and *[local-name()='PARVW']='WE']/*[local-name()='TELF1']"/>
154                     <xsl:value-of select="*[local-name()='E2EDK08001GRP']/*[local-name()='E2EDKA2001' and *[local-name()='PARVW']='WE']/*[local-name()='TELF2']"/>
155                     <xsl:value-of select="*[local-name()='E2EDK08001GRP']/*[local-name()='E2EDKA2001' and *[local-name()='PARVW']='WE']/*[local-name()='TELBX']"/>
156                 </xsl:element>
157             </xsl:element>
158             <xsl:element name="attribute">
159                 <xsl:element name="name">REQUESTED_ETD</xsl:element>
160                 <xsl:element name="value">
161                     <xsl:value-of select="*[local-name()='E2EDK07001GRP']/*[local-name()='ZE1EDK07000']/*[local-name()='DATUM']"/>
162                 </xsl:element>
163             </xsl:element>
164             <xsl:element name="attribute">
165                 <xsl:element name="name">INCOTERM_PLACE</xsl:element>
166                 <xsl:element name="value">
167                     <xsl:value-of select="*[local-name()='E2EDK07001GRP']/*[local-name()='ZE1EDK07000']/*[local-name()='INCO2']"/>
168                 </xsl:element>
169             </xsl:element>
170             <xsl:element name="attribute">
171                 <xsl:element name="name">NOTIFYING_PARTY</xsl:element>
172                 <xsl:element name="value">没找到IDoc节点</xsl:element>
173             </xsl:element>
174             <xsl:element name="attribute">
175                 <xsl:element name="name">BILL_TO_PARTY</xsl:element>
176                 <xsl:element name="value">
177                     <xsl:value-of select="*[local-name()='E2EDK07001GRP']/*[local-name()='ZE1EDK07000']/*[local-name()='BP_NAME']"/>
178                 </xsl:element>
179             </xsl:element>
180             <xsl:element name="attribute">
181                 <xsl:element name="name">CARGO_DESCRIPTION</xsl:element>
182                 <xsl:element name="value">没找到IDoc节点</xsl:element>
183             </xsl:element>
184             <xsl:element name="attribute">
185                 <xsl:element name="name">SHIPPING_MARK</xsl:element>
186                 <xsl:element name="value">没找到IDoc节点</xsl:element>
187             </xsl:element>
188             <xsl:element name="attribute">
189                 <xsl:element name="name">BL_INSTRUCTION</xsl:element>
190                 <xsl:element name="value">
191                     <xsl:value-of select="*[local-name()='E2EDK07001GRP']/*[local-name()='ZE1EDK07000']/*[local-name()='SDABW']"/>
192                 </xsl:element>
193             </xsl:element>
194             <xsl:element name="attribute">
195                 <xsl:element name="name">DELIVERY_CONFIRMATION</xsl:element>
196                 <xsl:element name="value">
197                     <xsl:value-of select="*[local-name()='E2EDK08001GRP']/*[local-name()='E2EDK08001']/*[local-name()='TRATY']"/>
198                 </xsl:element>
199             </xsl:element>
200             <xsl:element name="attribute">
201                 <xsl:element name="name">COMPANY_CODE</xsl:element>
202                 <xsl:element name="value">
203                     <xsl:value-of select="*[local-name()='E2EDK08001GRP']/*[local-name()='E2EDP07GRP']/*[local-name()='E2EDP09001GRP'][1]/*[local-name()='ZE1EDP09000']/*[local-name()='BUKRS_VF']"/>
204                 </xsl:element>
205             </xsl:element>
206             <xsl:element name="attribute">
207                 <xsl:element name="name">BUSINESS_UNIT</xsl:element>
208                 <xsl:element name="value">
209                     <xsl:value-of select="*[local-name()='E2EDK08001GRP']/*[local-name()='E2EDP07GRP']/*[local-name()='E2EDP09001GRP'][1]/*[local-name()='ZE1EDP09000']/*[local-name()='BU']"/>
210                 </xsl:element>
211             </xsl:element>
212             <xsl:element name="attribute">
213                 <xsl:element name="name">PRODUCT_GROUP</xsl:element>
214                 <xsl:element name="value">
215                     <xsl:value-of select="*[local-name()='E2EDK08001GRP']/*[local-name()='E2EDP07GRP']/*[local-name()='E2EDP09001GRP'][1]/*[local-name()='ZE1EDP09000']/*[local-name()='PG']"/>
216                 </xsl:element>
217             </xsl:element>
218             <xsl:element name="attribute">
219                 <xsl:element name="name">WBS</xsl:element>
220                 <xsl:element name="value">
221                     <xsl:value-of select="*[local-name()='E2EDK08001GRP']/*[local-name()='E2EDP07GRP']/*[local-name()='E2EDP09001GRP'][1]/*[local-name()='ZE1EDP09000']/*[local-name()='BSTNK']"/>
222                 </xsl:element>
223             </xsl:element>
224             <xsl:element name="attribute">
225                 <xsl:element name="name">CREATED_BY</xsl:element>
226                 <xsl:element name="value">
227                     <xsl:value-of select="*[local-name()='E2EDK07001GRP']/*[local-name()='ZE1EDK07000']/*[local-name()='CREATED_BY']"/>
228                 </xsl:element>
229             </xsl:element>
230             <xsl:element name="attribute">
231                 <xsl:element name="name">CONFIRMED_BY</xsl:element>
232                 <xsl:element name="value">
233                     <xsl:value-of select="*[local-name()='E2EDK07001GRP']/*[local-name()='ZE1EDK07000']/*[local-name()='UPDATED_BY']"/>
234                 </xsl:element>
235             </xsl:element>
236             <xsl:element name="attribute">
237                 <xsl:element name="name">SALESORDER_NUMBER</xsl:element>
238                 <xsl:element name="value">
239                     <xsl:value-of select="*[local-name()='E2EDK07001GRP']/*[local-name()='ZE1EDK07000']/*[local-name()='VGBEL']"/>
240                 </xsl:element>
241             </xsl:element>
242             <xsl:element name="attribute">
243                 <xsl:element name="name">CUSTOMER_REFERENCE_NUMBER</xsl:element>
244                 <xsl:element name="value">
245                     <xsl:value-of select="*[local-name()='E2EDK07001GRP']/*[local-name()='ZE1EDK07000']/*[local-name()='BSTNK']"/>
246                 </xsl:element>
247             </xsl:element>
248             <xsl:element name="attribute">
249                 <xsl:element name="name">CARGO_VALUE_AMOUNT</xsl:element>
250                 <xsl:element name="value">
251                     <xsl:element name="value">没找到IDoc节点</xsl:element>
252                 </xsl:element>
253             </xsl:element>
254             <xsl:element name="attribute">
255                 <xsl:element name="name">CARGO_VALUE_CURRENCY</xsl:element>
256                 <xsl:element name="value">
257                     <xsl:value-of select="*[local-name()='E2EDK07001GRP']/*[local-name()='ZE1EDK07000']/*[local-name()='WAERK']"/>
258                 </xsl:element>
259             </xsl:element>
260             <xsl:element name="attribute">
261                 <xsl:element name="name">ITEM_QUANTITY</xsl:element>
262                 <xsl:element name="value">
263                     <xsl:value-of select="*[local-name()='E2EDK07001GRP']/*[local-name()='ZE1EDK07000']/*[local-name()='TOTAL_QTY']"/>
264                 </xsl:element>
265             </xsl:element>
266             <xsl:element name="attribute">
267                 <xsl:element name="name">DEPARTMENT</xsl:element>
268                 <xsl:element name="value">
269                     <xsl:value-of select="*[local-name()='E2EDK07001GRP']/*[local-name()='ZE1EDK07000']/*[local-name()='ABTNR']"/>
270                 </xsl:element>
271             </xsl:element>
272             <xsl:element name="attribute">
273                 <xsl:element name="name">INTERNAL_ORDER_NUMBER</xsl:element>
274                 <xsl:element name="value">
275                     <xsl:value-of select="*[local-name()='E2EDK07001GRP']/*[local-name()='ZE1EDK07000']/*[local-name()='INTERNAL_ORDER']"/>
276                 </xsl:element>
277             </xsl:element>
278         </xsl:element>
279     </xsl:template>
280     <xsl:template name="order_packages">
281         <xsl:element name="orderPackages">
282             <xsl:for-each select="*[local-name()='E2EDK08001GRP']/*[local-name()='E2EDP07GRP']/*[local-name()='E2EDP08GRP']">
283                 <xsl:element name="orderPackage">
284                     <xsl:element name="weight">
285                         <xsl:element name="gross">
286                             <xsl:value-of select="*[local-name()='ZE1EDP08000']/*[local-name()='DN_WEIGHT']"/>
287                         </xsl:element>
288                     </xsl:element>
289                     <xsl:element name="dimension">
290                         <xsl:element name="width">
291                             <xsl:value-of select="*[local-name()='E2EDP08']/*[local-name()='BREIT']"/>
292                         </xsl:element>
293                         <xsl:element name="height">
294                             <xsl:value-of select="*[local-name()='E2EDP08']/*[local-name()='HOEHE']"/>
295                         </xsl:element>
296                         <xsl:element name="length">
297                             <xsl:value-of select="*[local-name()='E2EDP08']/*[local-name()='LAENG']"/>
298                         </xsl:element>
299                         <xsl:element name="ldm"/>
300                         <xsl:element name="volume">
301                             <xsl:value-of select="*[local-name()='E2EDP08']/*[local-name()='DN_VOLUME']"/>
302                         </xsl:element>
303                     </xsl:element>
304                     <xsl:element name="orientation">
305                         <xsl:element name="allowedOrientation">
306                         </xsl:element>
307                     </xsl:element>
308                     <xsl:element name="stackability">
309                         <xsl:element name="limit">
310                             <xsl:value-of select="*[local-name()='E2EDP08']/*[local-name()='VEGR3']"/>
311                         </xsl:element>
312                         <xsl:element name="onTop">
313                             <xsl:element name="sameType">true</xsl:element>
314                             <xsl:element name="differentType">true</xsl:element>
315                             <xsl:element name="onHeavier">true</xsl:element>
316                         </xsl:element>
317                         <xsl:element name="onBottom">
318                             <xsl:element name="sameType">true</xsl:element>
319                             <xsl:element name="differentType">true</xsl:element>
320                         </xsl:element>
321                     </xsl:element>
322                     <xsl:element name="orderPackageNumber" namespace="http://eyefreight.com/schema/model/order/v2">
323                         <xsl:value-of select="concat(/*[local-name()='Receive']/*[local-name()='idocData']/*[local-name()='E2EDK07001GRP']/*[local-name()='E2EDK07001']/*[local-name()='VBELN'],'-',*[local-name()='E2EDP08']/*[local-name()='EXIDV'])"/>
324                     </xsl:element>
325                     <xsl:element name="packageTypeCode"/>
326                     <xsl:element name="amount">0</xsl:element>
327                     <xsl:element name="temperatureCondition"/>
328                     <xsl:element name="natureOfGoods"/>
329                     <xsl:element name="skuAmount"/>
330                     <xsl:element name="customAttributes" namespace="http://eyefreight.com/schema/model/types/v1">
331                         <xsl:element name="attribute">
332                             <xsl:element name="name">COMPANY_CODE</xsl:element>
333                             <xsl:element name="value">要计算EDP09中的数据项</xsl:element>
334                         </xsl:element>
335                         <xsl:element name="attribute">
336                             <xsl:element name="name">BUSINESS_UNIT</xsl:element>
337                             <xsl:element name="value">需要计算EDP09中的数据项</xsl:element>
338                         </xsl:element>
339                         <xsl:element name="attribute">
340                             <xsl:element name="name">PRODUCT_GROUP</xsl:element>
341                             <xsl:element name="value">要计算EDP09中的数据项</xsl:element>
342                         </xsl:element>
343                         <xsl:element name="attribute">
344                             <xsl:element name="name">HU_CONTENTS</xsl:element>
345                             <xsl:element name="value">
346                                 <xsl:value-of select="*[local-name()='ZE1EDP08000']/*[local-name()='INHALT']"/>
347                             </xsl:element>
348                         </xsl:element>
349                         <xsl:element name="attribute">
350                             <xsl:element name="name">HU_LOCATION</xsl:element>
351                             <xsl:element name="value">
352                                 <xsl:value-of select="*[local-name()='ZE1EDP08000']/*[local-name()='VEGR2']"/>
353                             </xsl:element>
354                         </xsl:element>
355                         <xsl:element name="attribute">
356                             <xsl:element name="name">DANGEROUS_GOODS</xsl:element>
357                             <xsl:element name="value">
358                                 <xsl:value-of select="*[local-name()='ZE1EDP08000']/*[local-name()='ADGE_DG']"/>
359                             </xsl:element>
360                         </xsl:element>
361                         <xsl:element name="attribute">
362                             <xsl:element name="name">IDENTIFICATION_CODE</xsl:element>
363                             <xsl:element name="value">
364                                 <xsl:value-of select="*[local-name()='ZE1EDP08000']/*[local-name()='HU_ID2']"/>
365                             </xsl:element>
366                         </xsl:element>
367                         <xsl:element name="attribute">
368                             <xsl:element name="name">HU_NUMBER</xsl:element>
369                             <xsl:element name="value">
370                                 <xsl:value-of select="*[local-name()='E2EDP08']/*[local-name()='EXIDV']"/>
371                             </xsl:element>
372                         </xsl:element>
373                         <xsl:element name="attribute">
374                             <xsl:element name="name">HU_TYPE</xsl:element>
375                             <xsl:element name="value">
376                                 <xsl:value-of select="*[local-name()='E2EDP08']/*[local-name()='PCKAR']"/>
377                             </xsl:element>
378                         </xsl:element>
379                     </xsl:element>
380                     <xsl:element name="productDetails">
381                         <xsl:element name="productDetail">
382                             <xsl:element name="skuCode"/>
383                             <xsl:element name="name"/>
384                             <xsl:element name="description"/>
385                             <xsl:element name="amount"/>
386                             <xsl:element name="customAttributes" namespace="http://eyefreight.com/schema/model/types/v1">
387                                 <xsl:element name="attribute">
388                                     <xsl:element name="name">SALESORDER_NUMBER</xsl:element>
389                                     <xsl:element name="value">
390                                         <xsl:value-of select="../*[local-name()='E2EDP07']/*[local-name()='VGBEL']"/>
391                                     </xsl:element>
392                                 </xsl:element>
393                                 <xsl:element name="attribute">
394                                     <xsl:element name="name">COMMERCIAL_ITEM_NUMBER</xsl:element>
395                                     <xsl:element name="value">
396                                         <xsl:value-of select="../*[local-name()='E2EDP07']/*[local-name()='VGPOS']"/>
397                                     </xsl:element>
398                                 </xsl:element>
399                                 <xsl:element name="attribute">
400                                     <xsl:element name="name">CUSTOMER_REFERENCE_NUMBER</xsl:element>
401                                     <xsl:element name="value">
402                                         <xsl:value-of select="../*[local-name()='E2EDP07']/*[local-name()='BSTNK']"/>
403                                     </xsl:element>
404                                 </xsl:element>
405                                 <xsl:element name="attribute">
406                                     <xsl:element name="name">WBS</xsl:element>
407                                     <xsl:element name="value">不知道如何跟ZE1EDP09进行关联</xsl:element>
408                                 </xsl:element>
409                                 <xsl:element name="attribute">
410                                     <xsl:element name="name">CARGO_VALUE_AMOUNT</xsl:element>
411                                     <xsl:element name="value">不知道如何跟ZE1EDP09进行关联</xsl:element>
412                                 </xsl:element>
413                                 <xsl:element name="attribute">
414                                     <xsl:element name="name">CARGO_VALUE_CURRENCY</xsl:element>
415                                     <xsl:element name="value">
416                                         <xsl:value-of select="../*[local-name()='E2EDP07']/*[local-name()='WAERK']"/>
417                                     </xsl:element>
418                                 </xsl:element>
419                                 <xsl:element name="attribute">
420                                     <xsl:element name="name">COMPANY_CODE</xsl:element>
421                                     <xsl:element name="value">不知道如何跟ZE1EDP09进行关联</xsl:element>
422                                 </xsl:element>
423                                 <xsl:element name="attribute">
424                                     <xsl:element name="name">BUSINESS_UNIT</xsl:element>
425                                     <xsl:element name="value">不知道如何跟ZE1EDP09进行关联</xsl:element>
426                                 </xsl:element>
427                                 <xsl:element name="attribute">
428                                     <xsl:element name="name">PRODUCT_GROUP</xsl:element>
429                                     <xsl:element name="value">不知道如何跟ZE1EDP09进行关联</xsl:element>
430                                 </xsl:element>
431                             </xsl:element>
432                         </xsl:element>
433                     </xsl:element>
434                 </xsl:element>
435             </xsl:for-each>
436         </xsl:element>
437     </xsl:template>
438     <xsl:template name="handlingUnits">
439         <xsl:element name="orderPackages">
440             <xsl:for-each select="*[local-name()='E2EDK08001GRP']/*[local-name()='E2EDP07GRP']/*[local-name()='E2EDP08GRP']">
441                 <xsl:element name="handlingUnit">
442                     <xsl:element name="weight">
443                         <xsl:element name="gross">
444                             <xsl:value-of select="*[local-name()='ZE1EDP08000']/*[local-name()='BTGEW']"/>
445                         </xsl:element>
446                     </xsl:element>
447                     <xsl:element name="dimension">
448                         <xsl:element name="width">
449                             <xsl:value-of select="*[local-name()='E2EDP08']/*[local-name()='BREIT']"/>
450                         </xsl:element>
451                         <xsl:element name="height">
452                             <xsl:value-of select="*[local-name()='E2EDP08']/*[local-name()='HOEHE']"/>
453                         </xsl:element>
454                         <xsl:element name="length">
455                             <xsl:value-of select="*[local-name()='E2EDP08']/*[local-name()='LAENG']"/>
456                         </xsl:element>
457                         <xsl:element name="ldm"/>
458                         <xsl:element name="volume">
459                             <xsl:value-of select="*[local-name()='E2EDP08']/*[local-name()='BTVOL']"/>
460                         </xsl:element>
461                     </xsl:element>
462                     <xsl:element name="orientation">
463                         <xsl:element name="allowedOrientation">
464                         </xsl:element>
465                     </xsl:element>
466                     <xsl:element name="stackability">
467                         <xsl:element name="limit">
468                             <xsl:value-of select="*[local-name()='E2EDP08']/*[local-name()='VEGR3']"/>
469                         </xsl:element>
470                         <xsl:element name="onTop">
471                             <xsl:element name="sameType">true</xsl:element>
472                             <xsl:element name="differentType">true</xsl:element>
473                             <xsl:element name="onHeavier">true</xsl:element>
474                         </xsl:element>
475                         <xsl:element name="onBottom">
476                             <xsl:element name="sameType">true</xsl:element>
477                             <xsl:element name="differentType">true</xsl:element>
478                         </xsl:element>
479                     </xsl:element>
480                     <xsl:element name="handlingUnitUsageNumber">
481                         <xsl:value-of select="concat(/*[local-name()='Receive']/*[local-name()='idocData']/*[local-name()='E2EDK07001GRP']/*[local-name()='E2EDK07001']/*[local-name()='VBELN'],'-',*[local-name()='E2EDP08']/*[local-name()='EXIDV'])"/>
482                     </xsl:element>
483                     <xsl:element name="handlingUnitReference">
484                         <xsl:element name="equipmentTypeReference">
485                             <xsl:element name="code"></xsl:element>
486                             <xsl:element name="name"></xsl:element>
487                         </xsl:element>
488                     </xsl:element>
489                     <xsl:element name="ssccIdentifier"></xsl:element>
490                     <xsl:element name="sealNumber"/>
491                     <xsl:element name="customAttributes" namespace="http://eyefreight.com/schema/model/types/v1">
492                         <xsl:element name="attribute">
493                             <xsl:element name="name">HU_CONTENTS</xsl:element>
494                             <xsl:element name="value">
495                                 <xsl:value-of select="*[local-name()='ZE1EDP08000']/*[local-name()='INHALT']"/>
496                             </xsl:element>
497                         </xsl:element>
498                         <xsl:element name="attribute">
499                             <xsl:element name="name">HU_LOCATION</xsl:element>
500                             <xsl:element name="value">
501                                 <xsl:value-of select="*[local-name()='ZE1EDP08000']/*[local-name()='VEGR2']"/>
502                             </xsl:element>
503                         </xsl:element>
504                         <xsl:element name="attribute">
505                             <xsl:element name="name">DANGEROUS_GOODS</xsl:element>
506                             <xsl:element name="value">
507                                 <xsl:value-of select="*[local-name()='ZE1EDP08000']/*[local-name()='ADGE_DG']"/>
508                             </xsl:element>
509                         </xsl:element>
510                         <xsl:element name="attribute">
511                             <xsl:element name="name">IDENTIFICATION_CODE</xsl:element>
512                             <xsl:element name="value">
513                                 <xsl:value-of select="*[local-name()='ZE1EDP08000']/*[local-name()='HU_ID2']"/>
514                             </xsl:element>
515                         </xsl:element>
516                         <xsl:element name="attribute">
517                             <xsl:element name="name">HU_NUMBER</xsl:element>
518                             <xsl:element name="value">
519                                 <xsl:value-of select="*[local-name()='E2EDP08']/*[local-name()='EXIDV']"/>
520                             </xsl:element>
521                         </xsl:element>
522                         <xsl:element name="attribute">
523                             <xsl:element name="name">HU_TYPE</xsl:element>
524                             <xsl:element name="value">
525                                 <xsl:value-of select="*[local-name()='E2EDP08']/*[local-name()='PCKAR']"/>
526                             </xsl:element>
527                         </xsl:element>
528                     </xsl:element>
529                 </xsl:element>
530             </xsl:for-each>
531         </xsl:element>
532     </xsl:template>
533 </xsl:stylesheet>
View Code

希望不要再忘记。 

 

徐中
北京钛谷诚泽网络通讯科技有限公司
www.51biztalk.com

原文地址:https://www.cnblogs.com/xuzhong/p/2146383.html