我是XSLT Mapping空間的新手,我想問一些關於我的轉換的專家建議。我有一個扁平的XML文件,我希望每個文件都有相應的行項目和行項目編號。任何幫助將不勝感激。每組訂單中的每個訂單項的XSLT
這是我的XML
<?xml version="1.0" encoding="UTF-8"?>
<Orders>
<Line_Items>
<Delivery_Date>2014-03-25T06:00:00.000+1000</Delivery_Date>
<SAP_Order>518748492</SAP_Order>
<SAP_Delivery>416065495</SAP_Delivery>
<SAP_Shipment>2653107 - 6:00 AM - R/L</SAP_Shipment>
<External_ID>BRBC69J250314</External_ID>
<Time_Slot>1899/12/31</Time_Slot>
<Customer_Order>R-41542740A</Customer_Order>
<Outlet_Number>4202629</Outlet_Number>
<Material>951586</Material>
<Material_Description>1.25 PET X12 MT FRK LSPK</Material_Description>
<Order_Qty>48</Order_Qty>
<Pallets>22</Pallets>
<Gross_Weight>19329.08</Gross_Weight>
<Dispatcher_Message>AWH</Dispatcher_Message>
<Driver_Message>R/L - 1R4228V</Driver_Message>
<Pallet_Count>22</Pallet_Count>
<Shipping_Point>1043</Shipping_Point>
</Line_Items>
<Line_Items>
<Delivery_Date>2014-03-25T06:00:00.000+1000</Delivery_Date>
<SAP_Order>518748492</SAP_Order>
<SAP_Delivery>416065495</SAP_Delivery>
<SAP_Shipment>2653107 - 6:00 AM - R/L</SAP_Shipment>
<External_ID>BRBC69J250314</External_ID>
<Time_Slot>1899/12/31</Time_Slot>
<Customer_Order>R-41542740A</Customer_Order>
<Outlet_Number>4202629</Outlet_Number>
<Material>950064</Material>
<Material_Description>1.25 PET X12 DIET COKE</Material_Description>
<Order_Qty>192</Order_Qty>
<Pallets>22</Pallets>
<Gross_Weight>19329.08</Gross_Weight>
<Dispatcher_Message>AWH</Dispatcher_Message>
<Driver_Message>R/L - 1R4228V</Driver_Message>
<Pallet_Count>22</Pallet_Count>
<Shipping_Point>1043</Shipping_Point>
</Line_Items>
<Line_Items>
<Delivery_Date>2014-03-25T09:00:00.000+1000</Delivery_Date>
<SAP_Order>518748492</SAP_Order>
<SAP_Delivery>416065496</SAP_Delivery>
<SAP_Shipment>2653108 - 9:00 AM - R/L</SAP_Shipment>
<External_ID>BRBC70J250314</External_ID>
<Time_Slot>1899/12/31</Time_Slot>
<Customer_Order>R-41542740A</Customer_Order>
<Outlet_Number>4202629</Outlet_Number>
<Material>950055</Material>
<Material_Description>2.0 PET X8 COCA-COLA</Material_Description>
<Order_Qty>1056</Order_Qty>
<Pallets>22</Pallets>
<Gross_Weight>19294.88</Gross_Weight>
<Dispatcher_Message>AWH</Dispatcher_Message>
<Driver_Message>R/L - 1R4228C</Driver_Message>
<Pallet_Count>22</Pallet_Count>
<Shipping_Point>1043</Shipping_Point>
</Line_Items>
</Orders>
我想這是目標XML
<?xml version="1.0"?>
<WhsDockets>
<WhsDocket>
<Identifier>
<Reference>2653107 - 6:00 AM - R/L</Reference>
<DocketType>ORD</DocketType>
</Identifier>
<DocketDetail>
<WarehouseCode>ROC</WarehouseCode>
</DocketDetail>
<DocketLines>
<DocketLine>
<LineNumber>1</LineNumber>
<Product>951586</Product>
<Description>1.25 PET X12 MT FRK LSPK</Description>
<QuantityFromClientOrder>48</QuantityFromClientOrder>
<ProductUQ>CAS</ProductUQ>
</DocketLine>
<DocketLine>
<LineNumber>2</LineNumber>
<Product>950064</Product>
<Description>1.25 PET X12 DIET COKE</Description>
<QuantityFromClientOrder>192</QuantityFromClientOrder>
<ProductUQ>CAS</ProductUQ>
</DocketLine>
</DocketLines>
</WhsDocket>
<WhsDocket>
<Identifier>
<Reference>2653108 - 9:00 AM - R/L</Reference>
<DocketType>ORD</DocketType>
</Identifier>
<DocketDetail>
<WarehouseCode>ROC</WarehouseCode>
</DocketDetail>
<DocketLines>
<DocketLine>
<LineNumber>1</LineNumber>
<Product>950055</Product>
<Description>2.0 PET X8 COCA-COLA</Description>
<QuantityFromClientOrder>1056</QuantityFromClientOrder>
<ProductUQ>CAS</ProductUQ>
</DocketLine>
</DocketLines>
</WhsDocket>
</WhsDockets>
但我必須在相同的參考號對應的行項目,並添加一行項目編號來區分它,但這是我即將得到的。
<WhsDocket>
<Identifier>
<Reference>2653107 - 6:00 AM - R/L</Reference>
<DocketType>ORD</DocketType>
</Identifier>
<DocketDetail>
<WarehouseCode>ROC</WarehouseCode>
</DocketDetail>
<DocketLines>
<DocketLine>
<Product>951586</Product>
<Description>1.25 PET X12 MT FRK LSPK</Description>
<QuantityFromClientOrder>48</QuantityFromClientOrder>
<ProductUQ>CAS</ProductUQ>
</DocketLine>
</DocketLines>
</WhsDocket>
<WhsDocket>
<Identifier>
<Reference>2653107 - 6:00 AM - R/L</Reference>
<DocketType>ORD</DocketType>
</Identifier>
<DocketDetail>
<WarehouseCode>ROC</WarehouseCode>
</DocketDetail>
<DocketLines>
<DocketLine>
<Product>950064</Product>
<Description>1.25 PET X12 DIET COKE</Description>
<QuantityFromClientOrder>192</QuantityFromClientOrder>
<ProductUQ>CAS</ProductUQ>
</DocketLine>
</DocketLines>
</WhsDocket>
<WhsDocket>
<Identifier>
<Reference>2653108 - 9:00 AM - R/L</Reference>
<DocketType>ORD</DocketType>
</Identifier>
<DocketDetail>
<WarehouseCode>ROC</WarehouseCode>
</DocketDetail>
<DocketLines>
<DocketLine>
<Product>950055</Product>
<Description>2.0 PET X8 COCA-COLA</Description>
<QuantityFromClientOrder>1056</QuantityFromClientOrder>
<ProductUQ>CAS</ProductUQ>
</DocketLine>
</DocketLines>
</WhsDocket>
</WhsDockets>
這是我創建的XSLT。
<?xml version='1.0' ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<XmlInterchange xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.edi.com.au/EnterpriseService/">
<Payload>
<WhsDockets>
<xsl:for-each select="Orders/Line_Items">
<WhsDocket>
<Identifier>
<Reference>
<xsl:value-of select="SAP_Shipment"/>
</Reference>
<DocketType>ORD</DocketType>
</Identifier>
<DocketDetail>
<WarehouseCode>ROC</WarehouseCode>
</DocketDetail>
<DocketLines>
<DocketLine>
<Product>
<xsl:value-of select="Material"/>
</Product>
<Description>
<xsl:value-of select="Material_Description"/>
</Description>
<QuantityFromClientOrder>
<xsl:value-of select="Order_Qty"/>
</QuantityFromClientOrder>
<ProductUQ>CAS</ProductUQ>
</DocketLine>
</DocketLines>
</WhsDocket>
</xsl:for-each>
</WhsDockets>
</Payload>
</XmlInterchange>
</xsl:template>
</xsl:stylesheet>
不太清楚你在問什麼。您是否希望我們對您的XSLT發表評論,或者您是否希望我們修復某些已損壞的內容?如果是這樣,你能顯示你正在獲得(和顯示)的輸出旁邊的輸出嗎? – Abel
感謝Abel您的意見。我編輯了我的目標示例XML。因爲我是這個東西的初學者。我想知道如何將這些項目分組到一個參考標籤下,以及如何獲得相應的訂單項號碼。再次感謝並祝你有美好的一天。 –