Da ich nur ein Anfänger bei der XML-Programmierung bin, bin ich auf ein kleines Problem gestoßen, als ich versucht habe, das for-each zum Laufen zu bringen. Ich habe anderen Code, der ähnlich ist, der richtig funktioniert, also etwas Code von dort ausgeliehen und ein paar Zeilen geändert hat (klingt einfach) - allerdings, wenn ich den Code ausprobiere und ausführe, bekomme ich nur den ersten Kind-Knoten angezeigt, den For- Jeder scheint nicht auf das zweite Kind überzugehen.XML for-each funktioniert nicht richtig
Dank
XML-Input-:
<?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 Übersetzung;
<?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>
erhält nur die erste Zeile Knoten von;
<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 –