Andreas: Elemente in bestimmte Knoten einfügen

Beitrag lesen

Hallo,

Hab folgende Frage :
wie kann ich XML Elementknoten und zugehörigen Textknoten in eine bestimmte Stelle einfügen ?

Ich will das folgende XML Dokument kopieren und ergänzen, so dass alle Mitarbeiter, die jünger als 25 sind, den Knoten <Status>Ledig </Ledig> im <nachname> Konten enthalten.

**********
Also so :

...
<nachname>Meier
<status>Ledig</status>
</nachname>
...

***********

Hier das XML Dokument :

<?xml version="1.0" encoding="UTF-8"?>
<mb-datenbank>
 <abteilung>
  <name>
        IT-Abteilung
    </name>
  <angehoerige>

<mitarbeiter alter="23" id="2">
    <nachname>Meier</nachname>
    <telefon>3421</telefon>
   </mitarbeiter>

<mitarbeiter alter="26" id="7">
    <nachname>Huber
            </nachname>
    <telefon>5564</telefon>
   </mitarbeiter>

<mitarbeiter alter="25" id="4">
    <nachname>Hinkelstein</nachname>
    <telefon>3456</telefon>
   </mitarbeiter>

</angehoerige>
 </abteilung>
</mb-datenbank>

Das fehlerhaftes Stylesheet :

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

<xsl:template match="mitarbeiter">
  xsl:copy
   <xsl:apply-templates select="@*|node()"/>
   <xsl:if test="@alter&lt;25">
    <xsl:call-template name="ruf"/>
   </xsl:if>
  </xsl:copy>
 </xsl:template>

<xsl:template name="ruf" match="nachname">
  <xsl:element name="Status">
Ledig
</xsl:element>
   <xsl:apply-templates select="@*|node()"/>

</xsl:template>
</xsl:stylesheet>