XSL-Übersicht / Schattenkabinett

Schattenkabinett

Schattenkabinett

➪ shadow attributes ermöglichen, mit einem statischen Wert während der Präprozessing-Phase zu arbeiten.

Ein Schattenattribut (shadow attribute) trägt denselben Namen wie ein anderes Attribut, jedoch mit einem "_" als Präfix. Es erlaubt, mit einem statischen Wert während der Präprozessing-Phase zu arbeiten.


<xsl:stylesheet 
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
  xmlns:xs="http://www.w3.org/2001/XMLSchema" 
  version="3.0">
  <xsl:output method="xml" version="1.0" 
       encoding="UTF-8" indent="yes"/>
  <xsl:param name="pOrt" 
       static="yes" 
       as="xs:string" 
       select="&quot;Ort/name&quot;"/>
  <xsl:param name="pMensch" 
       static="yes" 
       as="xs:string" 
       select="'Mensch[Gehalt &gt; 1000]'"/>
  <xsl:template match="/*">
    <ROOT>
      <xsl:apply-templates 
           _select="/Orte/{$pOrt}, //{$pMensch}"/>
      <xsl:for-each 
           _select="//{$pMensch}">
        <m>
          <xsl:for-each 
               select="child::*[local-name() !='Kauf']">
            <xsl:attribute name="{local-name()}">
              <xsl:value-of select="text()"/>
            </xsl:attribute>
          </xsl:for-each>
        </m>
      </xsl:for-each>
    </ROOT>
  </xsl:template>
  <xsl:template _match="{$pOrt}">
    <Stadt>
      <xsl:value-of select="text()"/>
    </Stadt>
  </xsl:template>
  <xsl:template _match="{$pMensch}">
    <Person einkommen="{Gehalt}">
      <xsl:value-of select="vorname/text()"/>
    </Person>
  </xsl:template>
</xsl:stylesheet>

Ergebnis:


<ROOT>
 <Stadt>Neustadt</Stadt>
 <Stadt>Darmstadt</Stadt>
 <Stadt>Kapstadt</Stadt>
 <Person einkommen="1234.56">Nicole</Person>
 <Person einkommen="5430">Stefan</Person>
 <Person einkommen="6789">Willi</Person>
 <Person einkommen="3450">Betty</Person>
 <m id="4" name="Nixlos" vorname="Nicole" Gehalt="1234.56" idOrt="1"/>
 <m id="9" name="Sprachlos" vorname="Stefan" Gehalt="5430" idOrt="1"/>
 <m id="5" name="Wasistlos" vorname="Willi" Gehalt="6789" idOrt="3"/>
 <m id="6" name="Bodenlos" vorname="Betty" Gehalt="3450" idOrt="3"/>
</ROOT>

wg / 4. März 2018



Fragen? Anmerkungen? Tips?

Bitte nehmen Sie Kontakt zu mir auf:

Vorname
Nachname
Mailadresse







Vielen Dank für Ihr Interesse an meiner Arbeit.


V.i.S.d.P.: Wilfried Grupe * Klus 6 * 37643 Negenborn

☎ 0151. 750 360 61 * eMail: info10@wilfried-grupe.de

www.wilfried-grupe.de/XSL30_Schattenkabinett.html