Ich habe eine XSLT erstellt und ich frage mich, wie es möglich ist, alle Knoten zwischen einem Satz von Tags zu kopieren und ein weiteres Tag am unteren Rand hinzuzufügen. Ich habe das XSLT erstellt, das über die gesamte Logik verfügt, um zu bestimmen, welches Tag hinzugefügt werden soll und wie es aufgerufen werden soll. Das Problem, das ich jetzt bekomme, ist, dass ich nicht alle anderen Tags auch kopieren kann. Im Folgenden sind die Dateien in Frage:XSLT - Kopieren Sie alle anderen Knoten, fügen Sie einen neuen Knoten hinzu
XSLT
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="/csvImportSchema">
<csvImportSchema>
<xsl:for-each select="payload">
<payload>
<xsl:copy-of select="@*"/>
<xsl:variable name="ean">
<xsl:value-of select="ean"/>
</xsl:variable>
<xsl:for-each select="../product">
<xsl:if test="ean = $ean">
<productId><xsl:value-of select="article"/></productId>
</xsl:if>
</xsl:for-each>
</payload>
</xsl:for-each>
</csvImportSchema>
</xsl:template>
</xsl:stylesheet>
INPUT
<?xml version="1.0" encoding="UTF-8"?>
<csvImportSchema>
<payload>
<test>1</test>
<test2>2</test2>
<test3>3</test3>
<ean>1111111111</ean>
<productId/>
</payload>
<product>
<article>722619</article>
<ean>1111111111</ean>
</product>
</csvImportSchema>
STROMAUSGANG
<?xml version="1.0" encoding="utf-8"?>
<csvImportSchema>
<payload>
<productId>722619</productId>
</payload>
</csvImportSchema>
SOLL OUTPUT
<?xml version="1.0" encoding="UTF-8"?>
<csvImportSchema>
<payload>
<test>1</test>
<test2>2</test2>
<test3>3</test3>
<ean>1111111111</ean>
<productId>722619</productId>
</payload>
</csvImportSchema>
Danke. Das werde ich mir merken. – MMKD