Lösungen zu Übung 10: Auslesen der Tätigkeiten von Mitarbeitern (xsl:for-each)
Im Folgenden finden Sie die Lösungsdateien zu Übung 10 unter Auslesen der Tätigkeiten von Mitarbeitern.
Code-Beispiel: Lösungs-XSLT zu Übung 10.
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" exclude-result-prefixes="xs" version="3.0">
<xsl:mode streamable="yes" on-no-match="shallow-skip"/>
<xsl:output method="xhtml"/>
<!-- Erweiterung mit Accumulator als counter. -->
<xsl:accumulator name="counterM" as="xs:integer" initial-value="1" streamable="yes">
<xsl:accumulator-rule match="//Person/Name[@Gender = 'male']" select="$value + 1" />
</xsl:accumulator>
<xsl:accumulator name="counterF" as="xs:integer" initial-value="1" streamable="yes">
<xsl:accumulator-rule match="//Person/Name[@Gender = 'female']" select="$value + 1" />
</xsl:accumulator>
<xsl:template match="html"> </xsl:template>
<!-- Andere Unternehmen nutzen: Naugles, Stratapro -->
<xsl:template match="Company[@Name = 'Matrix Architectural Service']">
<html>
<head> </head>
<body>
<h2>Liste von Mitarbeitern und ihren Tätigkeiten in der Firma: <xsl:value-of select="./@Name" /></h2>
<table border="1">
<tr bgcolor="#9acd32">
<!-- Erweitern mit Nummerierung -->
<th>Nr.</th>
<th>Geschlecht</th>
<th>Name</th>
<th>Tätigkeit</th>
</tr>
<xsl:for-each select="Person">
<xsl:variable name="copy" select="copy-of(.)" />
<!-- Ändern der Abfrage bei Mann/Frau -->
<xsl:if test="$copy//@Gender = 'female'">
<tr>
<!-- Erweitern mit counter: Ändern des counters bei Mann/Frau -->
<td>
<xsl:value-of select="accumulator-before('counterF')" />
</td>
<td>
<xsl:value-of select="$copy//@Gender" />
</td>
<td>
<xsl:value-of select="$copy/Name/Firstname" /><xsl:text> </xsl:text> <xsl:value-of select="$copy/Name/Surname" />
</td>
<td>
<xsl:value-of select="$copy/Occupation" />
</td>
</tr>
</xsl:if>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
Code-Beispiel: Output-HTML zu Übung 10.
<?xml version="1.0" encoding="UTF-8"?>
<html>
<head></head>
<body>
<h2>Liste von Mitarbeitern und ihren Tätigkeiten in der Firma: Matrix Architectural Service</h2>
<table border="1">
<tr bgcolor="#9acd32">
<th>Nr.</th>
<th>Geschlecht</th>
<th>Name</th>
<th>Tätigkeit</th>
</tr>
<tr>
<td>1</td>
<td>female</td>
<td>Stefanie Aachen</td>
<td>Structural and reinforcing iron and metal worker</td>
</tr>
<tr>
<td>2</td>
<td>female</td>
<td>Christin Baecker</td>
<td>Heavy truck and tractor-trailer driver</td>
</tr>
<tr>
<td>3</td>
<td>female</td>
<td>Jessika Bergmann</td>
<td>Labor trainer</td>
</tr>
<tr>
<td>4</td>
<td>female</td>
<td>Melanie Beyer</td>
<td>Cutting and slicing machine tender</td>
</tr>
<tr>
<td>5</td>
<td>female</td>
<td>Christine Brauer</td>
<td>Condominium association manager</td>
</tr>
<tr>
<td>6</td>
<td>female</td>
<td>Uta Dresner</td>
<td>Orderlie</td>
</tr>
<tr>
<td>7</td>
<td>female</td>
<td>Vanessa Durr</td>
<td>Camera repairer</td>
</tr>
<tr>
<td>8</td>
<td>female</td>
<td>Sandra Eberhardt</td>
<td>Credit analyst</td>
</tr>
<tr>
<td>9</td>
<td>female</td>
<td>Gabriele Ebersbach</td>
<td>Foundry mold and coremaker</td>
</tr>
<tr>
<td>10</td>
<td>female</td>
<td>Andrea Egger</td>
<td>Benefits director</td>
</tr>
<tr>
<td>11</td>
<td>female</td>
<td>Kathrin Eichel</td>
<td>Gynecology nurse</td>
</tr>
<tr>
<td>12</td>
<td>female</td>
<td>Maria Frey</td>
<td>Credentials specialist</td>
</tr>
<tr>
<td>13</td>
<td>female</td>
<td>Susanne Friedmann</td>
<td>Stonemason</td>
</tr>
<tr>
<td>14</td>
<td>female</td>
<td>Karolin Glockner</td>
<td>Buyer</td>
</tr>
<tr>
<td>15</td>
<td>female</td>
<td>Claudia Gloeckner</td>
<td>Machine feeder</td>
</tr>
<tr>
<td>16</td>
<td>female</td>
<td>Anna Gloeckner</td>
<td>Genetics nurse</td>
</tr>
<tr>
<td>17</td>
<td>female</td>
<td>Mandy Gottlieb</td>
<td>Power distributor</td>
</tr>
<tr>
<td>18</td>
<td>female</td>
<td>Christine Hirsch</td>
<td>PBX operator</td>
</tr>
<tr>
<td>19</td>
<td>female</td>
<td>Ulrike Hueber</td>
<td>Animal control officer</td>
</tr>
<tr>
<td>20</td>
<td>female</td>
<td>Karin Keller</td>
<td>ATF agent</td>
</tr>
<tr>
<td>21</td>
<td>female</td>
<td>Nicole Kluge</td>
<td>Recreation supervisor</td>
</tr>
<tr>
<td>22</td>
<td>female</td>
<td>Christina Koenig</td>
<td>Gaming surveillance officer</td>
</tr>
<tr>
<td>23</td>
<td>female</td>
<td>Barbara Koertig</td>
<td>Economic geographer</td>
</tr>
<tr>
<td>24</td>
<td>female</td>
<td>Anna Kohl</td>
<td>Title examiner</td>
</tr>
<tr>
<td>25</td>
<td>female</td>
<td>Jessika Köhler</td>
<td>Lobbyist</td>
</tr>
<tr>
<td>26</td>
<td>female</td>
<td>Doreen Lowe</td>
<td>Log marker</td>
</tr>
<tr>
<td>27</td>
<td>female</td>
<td>Sabine Mauer</td>
<td>Personal secretary</td>
</tr>
<tr>
<td>28</td>
<td>female</td>
<td>Sandra Mayer</td>
<td>Tire builder</td>
</tr>
<tr>
<td>29</td>
<td>female</td>
<td>Leah Muller</td>
<td>Telecommunications specialist</td>
</tr>
<tr>
<td>30</td>
<td>female</td>
<td>Ulrike Nussbaum</td>
<td>Grader operator</td>
</tr>
<tr>
<td>31</td>
<td>female</td>
<td>Doreen Papst</td>
<td>Fish hatchery manager</td>
</tr>
<tr>
<td>32</td>
<td>female</td>
<td>Klaudia Pfaff</td>
<td>Mediator</td>
</tr>
<tr>
<td>33</td>
<td>female</td>
<td>Anna Schultz</td>
<td>General and operations manager</td>
</tr>
<tr>
<td>34</td>
<td>female</td>
<td>Nadine Schweitzer</td>
<td>Anthropologist</td>
</tr>
<tr>
<td>35</td>
<td>female</td>
<td>Stefanie Seiler</td>
<td>Education and development manager</td>
</tr>
<tr>
<td>36</td>
<td>female</td>
<td>Yvonne Theiss</td>
<td>Airline copilots</td>
</tr>
<tr>
<td>37</td>
<td>female</td>
<td>Katrin Unger</td>
<td>Forest fire inspector</td>
</tr>
<tr>
<td>38</td>
<td>female</td>
<td>Ines Unger</td>
<td>Ornamental ironworker</td>
</tr>
<tr>
<td>39</td>
<td>female</td>
<td>Michelle Waechter</td>
<td>Mixing and blending machine setter</td>
</tr>
<tr>
<td>40</td>
<td>female</td>
<td>Sabrina Wagner</td>
<td>Hotel desk clerk</td>
</tr>
<tr>
<td>41</td>
<td>female</td>
<td>Janina Wagner</td>
<td>Coil winder</td>
</tr>
<tr>
<td>42</td>
<td>female</td>
<td>Lena Wechsler</td>
<td>Tax examiner</td>
</tr>
<tr>
<td>43</td>
<td>female</td>
<td>Doreen Wechsler</td>
<td>Surveillance agent</td>
</tr>
<tr>
<td>44</td>
<td>female</td>
<td>Stefanie Wexler</td>
<td>Information designer</td>
</tr>
<tr>
<td>45</td>
<td>female</td>
<td>Kerstin Winkel</td>
<td>Transmitter operator</td>
</tr>
<tr>
<td>46</td>
<td>female</td>
<td>Kathrin Wirth</td>
<td>Education and training manager</td>
</tr>
<tr>
<td>47</td>
<td>female</td>
<td>Annett Zweig</td>
<td>Environmental chemist</td>
</tr>
</table>
</body>
</html>
Tipp der data2type-Redaktion: Zum Thema XSLT bieten wir auch folgende Schulungen zur Vertiefung und professionellen Fortbildung an: |