Quelldatei:
Alles anzeigen
Schreiben Sie ein XSLT-Dokument, mit dem Sie eine Transformation von einem XML-Dokument (adressbuch.xml) in ein [coderwiki]Informationen/XHTML[/coderwiki]-Dokument durchführen können. Im XHTML-Dokument soll eine Tabelle erstellt werden. Das erstellte XSLT-Stylesheet sollen Sie nun durch
geeignete [coderwiki]Informationen/XPath[/coderwiki]-Ausdrücke überarbeiten werden. Als Zusatz erweitern Sie die Tabelle mit einer Nummerierung (Laufnummer). Das zu erstellende HTML-Dokument soll wie die folgt aussehen.
Lösung
Alles anzeigen
Quellcode
- <ADRESSBUCH>
- <PERSON KATEGORIE="Privat">
- <ANREDE TITEL="Herr"/>
- <VOLLER_NAME>
- <NAME>Müller</NAME>
- <VORNAME>Hans</VORNAME>
- </VOLLER_NAME>
- <GEBURTSTAG DATUM="12.04.1965"/>
- <BERUF BEZEICHNUNG="Lehrer"/>
- <ADRESSE>
- <ADRESSE_PRIVAT>
- <STRASSE>Hinterberg 4</STRASSE>
- <POSTFACH>357</POSTFACH>
- <POSTLEITZAHL>56070</POSTLEITZAHL>
- <ORT>Koblenz</ORT>
- <REGION>Rheinland</REGION>
- <LAND>Deutschland</LAND>
- </ADRESSE_PRIVAT>
- </ADRESSE>
- <KONTAKT>
- <TELEFON>
- <TELEFON_PRIVAT>0521234567</TELEFON_PRIVAT>
- <MOBILE>01781234567</MOBILE>
- </TELEFON>
- </KONTAKT>
- </PERSON>
- </ADRESSBUCH>
Schreiben Sie ein XSLT-Dokument, mit dem Sie eine Transformation von einem XML-Dokument (adressbuch.xml) in ein [coderwiki]Informationen/XHTML[/coderwiki]-Dokument durchführen können. Im XHTML-Dokument soll eine Tabelle erstellt werden. Das erstellte XSLT-Stylesheet sollen Sie nun durch
geeignete [coderwiki]Informationen/XPath[/coderwiki]-Ausdrücke überarbeiten werden. Als Zusatz erweitern Sie die Tabelle mit einer Nummerierung (Laufnummer). Das zu erstellende HTML-Dokument soll wie die folgt aussehen.
Lösung
Quellcode
- <?xml version="1.0" encoding="iso-8859-1"?>
- <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
- <xsl:output method="xhtml" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"/>
- <xsl:template match="/">
- <html>
- <head>
- <title>XSLT Adressbuch Test</title>
- </head>
- <body>
- <table>
- <tr>
- <th>Nr.</th>
- <th>Anrede</th>
- <th>Vorname</th>
- <th>Name</th>
- <th>Beruf</th>
- <th>Tel.Privat</th>
- </tr>
- <xsl:apply-templates/>
- </table>
- </body>
- </html>
- </xsl:template>
- <xsl:template match="ADRESSBUCH">
- <xsl:for-each select="PERSON">
- <xsl:sort select="VOLLER_NAME/NAME" data-type="text" />
- <tr>
- <td><xsl:number value="position()" format="01." /></td> <!--Nr.//-->
- <td><xsl:value-of select="ANREDE/@TITEL"/></td> <!--Anrede//-->
- <td><xsl:value-of select="VOLLER_NAME/VORNAME"/></td> <!--Vorname//-->
- <td><xsl:value-of select="VOLLER_NAME/NAME"/></td> <!--Name//-->
- <td><xsl:value-of select="BERUF/@BEZEICHNUNG"/></td> <!--Beruf//-->
- <td><xsl:value-of select="KONTAKT/TELEFON/TELEFON_PRIVAT"/></td> <!--Tel.Privat//-->
- </tr>
- </xsl:for-each>
- </xsl:template>
- </xsl:stylesheet>