Guten Morgen und danke schon mal für die Unterstützung bisher.
Versuche nun im zweiten Schritt zu prüfen, ob eines diese ausgegebenen Felder (LineChangeDeliveryDate, LineChangeQty, LineChangeArticle) mit dem Wert yes befüllt sind, wenn dies der Fall ist soll ein neuer Knoten (LineChange) ebenfalls mit dem Wert yes erstellt werden.
Der Knoten "LineChange" wird mir zwar erstellt, jedoch funktioniert die Abfrage nicht korrekt.
Habe als Test die Menge bei QtyOrderd (im XML) angepasst.
XML:
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<OrderResponse>
<Interchange>
</Interchange>
<HeaderInformation>
</HeaderInformation>
<LineInformation>
<Item>
<LineNum>1</LineNum>
<SupplierArticleNumber>BK07050SC40</SupplierArticleNumber>
<Quantity>3.00</Quantity>
<QtyOrdered>3.00</QtyOrdered>
<DeliveryDate>2019-12-09</DeliveryDate>
<OrigDeliveryDate>2019-12-09</OrigDeliveryDate>
<OrigSupplierArticleNumber>BK07050SC40</OrigSupplierArticleNumber>
</Item>
<Item>
<LineNum>2</LineNum>
<SupplierArticleNumber>BK07050SC40</SupplierArticleNumber>
<Quantity>3.00</Quantity>
<QtyOrdered>5.00</QtyOrdered>
<DeliveryDate>2019-12-09</DeliveryDate>
<OrigDeliveryDate>2019-12-09</OrigDeliveryDate>
<OrigSupplierArticleNumber>BK07050SC40</OrigSupplierArticleNumber>
</Item>
</LineInformation>
</OrderResponse>
XSLT:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8" standalone="yes" indent="yes"/>
<xsl:strip-space elements="*" />
<xsl:template match="Item">
<xsl:copy>
<LineChangeDeliveryDate>
<xsl:choose>
<xsl:when test="OrigDeliveryDate = DeliveryDate">no</xsl:when>
<xsl:otherwise>yes</xsl:otherwise>
</xsl:choose>
</LineChangeDeliveryDate>
<LineChangeQty>
<xsl:choose>
<xsl:when test="QtyOrdered = Quantity">no</xsl:when>
<xsl:otherwise>yes</xsl:otherwise>
</xsl:choose>
</LineChangeQty>
<LineChangeArticle>
<xsl:choose>
<xsl:when test="OrigSupplierArticleNumber = SupplierArticleNumber">no</xsl:when>
<xsl:otherwise>yes</xsl:otherwise>
</xsl:choose>
</LineChangeArticle>
<LineChange>
<xsl:choose>
<xsl:when test="concat(LineNum, '|', LineChangeDeliveryDate[yes], '|', LineChangeQty[yes], '|', LineChangeArticle[yes])">yes</xsl:when>
<xsl:otherwise>no</xsl:otherwise>
</xsl:choose>
</LineChange>
<!--copy all other nodes-->
<xsl:apply-templates select="@* | node()"/>
</xsl:copy>
</xsl:template>
<!-- Identity-Template für die nicht explizit benannten Elemente -->
<xsl:template match="@* | node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>