Hallo Thomas,
Du kannst ein Template für alle Elemente erstellen, deren Inhalt du nciht verändern willst:
<xsl:template match="foo | bar | bla | blubb">
<xsl:copy-of select="."/>
Ohje, das wär ganz schön aufwendig dort oben alle Elemente einzutragen, die nicht verändert werden und nur kopiert werden sollen.
Jetzt hab ich soweit angefangen:
<xsl:template match = "@* | node()">
xsl:copy
<xsl:copy-of select="*"/>
<xsl:apply-templates />
</xsl:copy>
</xsl:template>
Soweit wird erstmal alles kopiert und auch andere Templates aufgerufen - denkt man zumindest.
zweites Template:
<xsl:template match="root">
xsl:copy
<xsl:if test="wenn was stimmt">
<!-- füge hinzu -->
<daten id="3"></daten>
</xsl:if>
<xsl:copy-of select="*"/>
</xsl:copy>
</xsl:template>
Klappt auch wunderbar!
Soll jetzt aber ein neuer <kontakt> unter root/kontakte angelegt werden, wird jedoch nicht in das template hineingegangen:
<xsl:template match="kontakte">
xsl:copy
<xsl:if test="wenn was stimmt">
<!-- füge hinzu -->
<kontakt id="3"></kontakt>
</xsl:if>
<xsl:copy-of select="*"/>
</xsl:copy>
</xsl:template>
Außer meiner Sicht sollte das doch funktionieren, oder?
Jemand noch eine Idee?
Gruß,
Kerstin