ThomasM: XSLT 1.0 Prüfen ob ein Unterknoten vorhanden

Beitrag lesen

Hallo Julian,

würde eine Prüfung auf "ItemDeliveryInformation" benötigen, ob der Unterpunkt "PackingSlipId" vorhanden ist, wenn nicht, soll ein neues Feld erzeugt werden mit der Bezeichnung "PackingSlipId" und dem Inhalt von "HeaderInformation/PackingSlipId_Z_Article"

Offenbar ist PackingSlipId das auf LineNumDeliveryNote folgende Geschwisterelement. Dann bietet sich dieses Vorgehen an:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

  <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>

  <xsl:template match="node()|@*">
    <xsl:copy>
      <xsl:apply-templates select="node()|@*"/>
    </xsl:copy>
  </xsl:template>

  <xsl:template match="LineNumDeliveryNote">
    <xsl:copy-of select="."/>
    <xsl:if test="not(following-sibling::PackingSlipId)">
      <PackingSlipId>
        <xsl:value-of select="/SALESINVOICE//HeaderInformation/PackingSlipId_Z_Article"/>
      </PackingSlipId>
    </xsl:if>
  </xsl:template>

</xsl:stylesheet>

Grüße,
Thomas