1
作爲XML編程的初學者,我偶然發現了一個小問題,試圖讓for-each工作。我有其他代碼是相似的,它工作正常,所以從那裏借用了一些代碼並更改了幾行(聽起來很簡單) - 但是,當我嘗試執行代碼時,我只得到第一個子節點出現,每個似乎都不會傳給第二個孩子。XML for-each工作不正常
感謝
輸入XML:
<?xml version="1.0" encoding="Windows-1252"?>
<SalesOrders>
<Order>
<OrderHeader>
<Customer>000008</Customer>
<SalesOrder>000809</SalesOrder>
</OrderHeader>
<OrderDetails>
<StockLine>
<SalesOrderLine>0001</SalesOrderLine>
<StockCode>LOT100</StockCode>
<Warehouse>FG</Warehouse>
<Quantity>3.000</Quantity>
<Lot>500</Lot>
</StockLine>
<Stockline>
<SalesOrderLine>0002</SalesOrderLine>
<StockCode>LOT101</StockCode>
<Warehouse>FG</Warehouse>
<Quantity>4.000</Quantity>
<Lot>501</Lot>
</Stockline>
</OrderDetails>
</Order>
</SalesOrders>
XSL轉換;
<?xml version="1.0" encoding="windows-1252"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" omit-xml-declaration="yes" />
<xsl:template match="/">
<PostSorBackOrderRelease>
<xsl:for-each select="//OrderDetails/StockLine">
<Item>
<Customer>
<xsl:value-of select="../../OrderHeader/Customer" />
</Customer>
<SalesOrder>
<xsl:value-of select="../../OrderHeader/SalesOrder" />
</SalesOrder>
<StockCode>
<xsl:value-of select="StockCode" />
</StockCode>
<Warehouse>
<xsl:value-of select="Warehouse" />
</Warehouse>
<Quantity>
<xsl:value-of select="Quantity" />
</Quantity>
<ActualShipQty>
</ActualShipQty>
<UnitOfMeasure />
<Units />
<Pieces />
<ReleaseFromMultipleLines>N</ReleaseFromMultipleLines>
<SalesOrderLine>
<xsl:value-of select="SalesOrderLine" />
</SalesOrderLine>
<CompleteLine>N</CompleteLine>
<AdjustOrderQuantity>N</AdjustOrderQuantity>
<OrderStatus>3</OrderStatus>
<ReleaseFromShip>N</ReleaseFromShip>
<ZeroShipQuantity>N</ZeroShipQuantity>
<AllocateSerialNumbers>N</AllocateSerialNumbers>
<eSignature>
</eSignature>
</Item>
</xsl:for-each>
</PostSorBackOrderRelease>
</xsl:template>
</xsl:stylesheet>
只得到第一行節點;
<PostSorBackOrderRelease>
<Item>
<Customer>000008</Customer>
<SalesOrder>000809</SalesOrder>
<StockCode>LOT100</StockCode>
<Warehouse>FG</Warehouse>
<Quantity>3.000</Quantity>
<ActualShipQty />
<UnitOfMeasure />
<Units />
<Pieces />
<ReleaseFromMultipleLines>N</ReleaseFromMultipleLines>
<SalesOrderLine>0001</SalesOrderLine>
<CompleteLine>N</CompleteLine>
<AdjustOrderQuantity>N</AdjustOrderQuantity>
<OrderStatus>3</OrderStatus>
<ReleaseFromShip>N</ReleaseFromShip>
<ZeroShipQuantity>N</ZeroShipQuantity>
<AllocateSerialNumbers>N</AllocateSerialNumbers>
<eSignature />
</Item>
</PostSorBackOrderRelease>
@SteveEClarke http://stackoverflow.com/help/someone-answers –