![]() |
Stylesheet für XML Datei
Wie müsste ein Stylesheet oder wie das heißt aussehen, damit eine solche XML-Datei:
XML-Code:
im Browser gescheit aussieht?
- <importkennungen>
- <zeitraum jahr="2007"> <ziel kennung="11A13">(#BUNG07)\Lieferschein</ziel> <ziel kennung="11A15">(#BUNG07)\Rechnung</ziel> <ziel kennung="11A11">(#BUNG07)\Firma2\Lieferschein</ziel> </zeitraum> - <zeitraum jahr="2006"> <ziel kennung="11A13">(#BUNG06)\Lieferschein</ziel> <ziel kennung="11A15">(#BUNG06)\Rechnung</ziel> <ziel kennung="11A11">(#BUNG06)\Firma2\Lieferschein</ziel> </zeitraum> - <zeitraum jahr="2005"> <ziel kennung="11A13">(#BUNG05)\Lieferschein</ziel> <ziel kennung="11A15">(#BUNG05)\Rechnung</ziel> <ziel kennung="11A11">(#BUNG05)\Firma2\Lieferschein</ziel> </zeitraum> - <zeitraum jahr="2004"> <ziel kennung="11A13">(#BUNG04)\Lieferschein</ziel> <ziel kennung="11A15">(#BUNG04)\Rechnung</ziel> <ziel kennung="11A11">(#BUNG04)\Firma2\Lieferschein</ziel> </zeitraum> </importkennungen> |
Re: Stylesheet für XML Datei
Welches Stylesheet?
CSS kann auch auf XML-Elemente angewandt werden, wenn die Struktur der Datei in etwa der Struktur der Anzeige entsprechen soll, tuts eine einfache CSS-Datei. ich hab das noch nicht selbst ausprobiert, aber im Prinzip kannst du ja per CSS das Aussehen sehr frei festlegen, also Borders, Margins, Paddings und ob es ein Block- oder Inline-Element ist. Wenn dir das nicht reicht, bleibt noch XSLT übrig, damit bist du, was das Ausgabeformat betrifft, quasi unbeschränkt. |
Re: Stylesheet für XML Datei
Dachtest du an so was?
XML-Code:
Lässt sich, wie Chewie schon sagte, noch mit CSS und Co. verschönern. Aber du musst der XML-Datei auch sagen, dass sie ein XSL-Stylesheet hat:
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:template match="importkennungen"> <html> <head> <title>Importkennungen</title> </head> <body> <xsl:apply-templates /> </body> </html> </xsl:template> <xsl:template match="zeitraum"> <table> <tr><th><xsl:value-of select="@jahr"/></th></tr> <xsl:apply-templates/> </table> </xsl:template> <xsl:template match="ziel"> <tr><td><xsl:value-of select="@kennung"/>, <xsl:apply-templates/></td></tr> </xsl:template> </xsl:stylesheet>
XML-Code:
<?xml-stylesheet href="importkennungen.xsl" type="text/xsl"?>
<importkennungen> </importkennungen> |
Re: Stylesheet für XML Datei
Ja genau so was. Spitze. :thumb:
Könnte mir nochjemand das Prinzip an Hand obigen Beispieles erklären? Noch eine frage, warum sagt er mir das ein "ü" ein ungültiges Zeichen wäre? :gruebel: Habs: <?xml version="1.0" encoding="ISO-8859-1"?> muss es heißen, dann gehen auch Umlaute. ;) |
Re: Stylesheet für XML Datei
Zitat:
XML-Code:
sind dabei eigentlich spezielle XML-"Befehle", durch die quasi der restliche Code bearbeitet wird. Würdest du das beim <importkennungen>-Template nicht angeben, dann hättest du nur eine leere HTML-Seite ohne Inhalt. Daneben gibt es noch weitere Befehle (u.a. auch eine for-Schleife), mit denen du das Ergebnis noch weiter beeinflussen kannst. Aber die Erklärung würde letztlich zu lange dauern. Da du das PSDK hast, verweise ich dich einfach mal auf die passenden Befehle, die ja dort erläutert werden.
<xsl:value-of select="?"/>
<xsl:apply-templates /> Hier mal ein kleines Beispiel, falls du typische HTML-Befehle in XML-Dateien verwenden willst und diese auch 1:1 umsetzen möchtest. Wie gesagt, XML an sich kann mit <a>, <pre> und Co. ja nichts anfangen. Aber du brauchst nun nicht jedes HTML-Tag bekannt machen, es reicht auch eine Aufzählung
XML-Code:
:stupid:
<xsl:template match="ul|ol|li|img|p|a|b|u|i|br|code|pre|span|iframe|del|small|hr|h1|h2|h3|acronym">
<xsl:copy> <xsl:copy-of select="@*"/> <xsl:apply-templates/> </xsl:copy> </xsl:template> |
Re: Stylesheet für XML Datei
Aha. Ich habe es jetzt mal selber versucht an Hand diser XML Datei:
XML-Code:
<?xml-stylesheet href="appdata/LogFile.xsl" type="text/xsl"?>
<log> <Start TS="2006-04-13">LogFile</Start> <Info TS="2006-04-13 14:59:13:546">Anzahl kopierter Dateien: 15</Info> <Info TS="2006-04-13 14:59:13:546">zu verarbeitende Spooldateien: 15</Info> <Info TS="2006-04-13 14:59:13:562">aktuelle Spooldatei: D:\Projekte Datawerk\PMD\Cold\bin\work\01.txt</Info> <Task TS="2006-04-13 14:59:13:593">Erstelle Importdokument D:\Projekte Datawerk\PMD\Cold\bin\work\import\01_000.txt</Task> <Task TS="2006-04-13 14:59:13:625">Erstelle Importdokument D:\Projekte Datawerk\PMD\Cold\bin\work\import\01_001.txt</Task> <Task TS="2006-04-13 14:59:13:640">Erstelle Importdokument D:\Projekte Datawerk\PMD\Cold\bin\work\import\01_002.txt</Task> <Info TS="2006-04-13 14:59:13:671">Spooldatei 01.txt gelöscht</Info> <Info TS="2006-04-13 14:59:13:687">aktuelle Spooldatei: D:\Projekte Datawerk\PMD\Cold\bin\work\02.txt</Info> <Task TS="2006-04-13 14:59:13:703">Erstelle Importdokument D:\Projekte Datawerk\PMD\Cold\bin\work\import\02_000.txt</Task> <Task TS="2006-04-13 14:59:13:734">Erstelle Importdokument D:\Projekte Datawerk\PMD\Cold\bin\work\import\02_001.txt</Task> <Task TS="2006-04-13 14:59:13:750">Erstelle Importdokument D:\Projekte Datawerk\PMD\Cold\bin\work\import\02_002.txt</Task> <Info TS="2006-04-13 14:59:13:781">Spooldatei 02.txt gelöscht</Info> <Info TS="2006-04-13 14:59:13:796">aktuelle Spooldatei: D:\Projekte Datawerk\PMD\Cold\bin\work\03.txt</Info> <Task TS="2006-04-13 14:59:13:828">Erstelle Importdokument D:\Projekte Datawerk\PMD\Cold\bin\work\import\03_000.txt</Task> <Task TS="2006-04-13 14:59:13:843">Erstelle Importdokument D:\Projekte Datawerk\PMD\Cold\bin\work\import\03_001.txt</Task> <Task TS="2006-04-13 14:59:13:875">Erstelle Importdokument D:\Projekte Datawerk\PMD\Cold\bin\work\import\03_002.txt</Task> <Info TS="2006-04-13 14:59:13:890">Spooldatei 03.txt gelöscht</Info> <Info TS="2006-04-13 14:59:14:234">aktuelle Spooldatei: D:\Projekte Datawerk\PMD\Cold\bin\work\08.txt</Info> <Task TS="2006-04-13 14:59:14:265">Erstelle Importdokument D:\Projekte Datawerk\PMD\Cold\bin\work\import\08_000.txt</Task> <Task TS="2006-04-13 14:59:14:281">Erstelle Importdokument D:\Projekte Datawerk\PMD\Cold\bin\work\import\08_001.txt</Task> <Task TS="2006-04-13 14:59:14:312">Erstelle Importdokument D:\Projekte Datawerk\PMD\Cold\bin\work\import\08_002.txt</Task> <Info TS="2006-04-13 14:59:14:328">Spooldatei 08.txt gelöscht</Info> <Info TS="2006-04-13 14:59:14:343">aktuelle Spooldatei: D:\Projekte Datawerk\PMD\Cold\bin\work\09.txt</Info> <Task TS="2006-04-13 14:59:14:390">Erstelle Importdokument D:\Projekte Datawerk\PMD\Cold\bin\work\import\09_000.txt</Task> <Task TS="2006-04-13 14:59:14:421">Erstelle Importdokument D:\Projekte Datawerk\PMD\Cold\bin\work\import\09_001.txt</Task> <Task TS="2006-04-13 14:59:14:453">Erstelle Importdokument D:\Projekte Datawerk\PMD\Cold\bin\work\import\09_002.txt</Task> <Info TS="2006-04-13 14:59:14:468">Spooldatei 09.txt gelöscht</Info> <Info TS="2006-04-13 14:59:14:484">aktuelle Spooldatei: D:\Projekte Datawerk\PMD\Cold\bin\work\10.txt</Info> <Task TS="2006-04-13 14:59:14:515">Erstelle Importdokument D:\Projekte Datawerk\PMD\Cold\bin\work\import\10_000.txt</Task> <Task TS="2006-04-13 14:59:14:546">Erstelle Importdokument D:\Projekte Datawerk\PMD\Cold\bin\work\import\10_001.txt</Task> <Task TS="2006-04-13 14:59:14:562">Erstelle Importdokument D:\Projekte Datawerk\PMD\Cold\bin\work\import\10_002.txt</Task> <Info TS="2006-04-13 14:59:14:593">Spooldatei 10.txt gelöscht</Info> <Ende TS="2006-04-13 14:59:17:250">LogDatei wurde geschlossen.</Ende> </log>
Code:
aber da sagt er mir schon gleich am Anfang:
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:template match="log"> <html> <head> <title>LogFile</title> <link rel="stylesheet" type="text/css" href="appdata/stylesheet.css"/> </head> <body> <div> <h1>LogFile</h1> <hr/> <xsl:apply-templates /> <hr/> </div> </body> </html> </xsl:template> <xsl:template match="Info"> <xsl:name> <xsl:apply-templates/> </xsl:template> <!-- <xsl:template match="ziel"> <tr><td><xsl:value-of select="@kennung"/></td><td><xsl:apply-templates/></td></tr> </xsl:template> --> </xsl:stylesheet> Zitat:
Kategorie, Timestamp, Text Wobei Kategorie der Name des Elemetes ist, Timestamp das Attribut und Text der Inhalt des Elemetes. Es wäre dann noch schön, wenn man die Spalten entsprechend Färben könnte: Kategorie Info schwarz, Kategorie task blau und Kategorie Error rot oder so. So:
Code:
Gibt er mir immer nur den Wert der Eloemete aus, von der Tabelle ist aber nichts zu sehen.
<xsl:template match="log">
<html> <head> <title>LogFile</title> <link rel="stylesheet" type="text/css" href="appdata/stylesheet.css"/> </head> <body> <h1>LogFile</h1> <hr/> <table> <tr><th>Kategorie</th><th>Zeitstempel</th><th>Text</th></tr> <tr> <xsl:apply-templates /> </tr> </table> <hr/> </body> </html> </xsl:template> <xsl:template match="Info"> <td></td><td><xsl:value-of select="@TS"/></td><td></td> <xsl:apply-templates /> </xsl:template> <xsl:template match="Task"> <td></td><td><xsl:value-of select="@TS"/></td><td></td> <xsl:apply-templates /> </xsl:template> <xsl:template match="Error"> <td></td><td><xsl:value-of select="@TS"/></td><td></td> <xsl:apply-templates /> </xsl:template> |
Re: Stylesheet für XML Datei
Nette kleine Übung für mich :thumb:
XML-Code:
:zwinker:
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:template match="log"> <html> <head> <title>LogFile</title> <style type="text/css"><![CDATA[ .error { background-color:red; color:black; } .info { background-color:green; color:white; } .task { background-color:yellow; color:black; } ]]></style> </head> <body> <h1>LogFile</h1> <hr/> <table> <tr><th>Kategorie</th><th>Zeitstempel</th><th>Text</th></tr> <xsl:apply-templates/> </table> <hr/> </body> </html> </xsl:template> <xsl:template match="Info|Task|Error|Start|Ende"> <tr> <xsl:attribute name="class"> <xsl:choose> <xsl:when test="name()='Info'"><xsl:text>info</xsl:text></xsl:when> <xsl:when test="name()='Task'"><xsl:text>task</xsl:text></xsl:when> <xsl:when test="name()='Error'"><xsl:text>error</xsl:text></xsl:when> <xsl:otherwise /> </xsl:choose> </xsl:attribute> <td><xsl:value-of select="name()"/></td> <td><xsl:value-of select="@TS"/></td> <td><xsl:apply-templates /></td> </tr> </xsl:template> </xsl:stylesheet> |
Re: Stylesheet für XML Datei
Ui, ich dachte nicht, dass es so komplex wird.
Aber eins noch, er stolpert über das "ö" trotz:
Code:
<?xml version="1.0" encoding="ISO-8859-1"?>
Zitat:
|
Re: Stylesheet für XML Datei
Zitat:
Zitat:
* Ist mir bei deiner Tabelle in deinem Stylesheet aufgefallen. Das war nicht ganz korrektes HTML. Zumindest wäre nicht die 3spaltige Tabelle entstanden, die du wolltest. :zwinker: |
Re: Stylesheet für XML Datei
Dort hatte ich wohl schon die "ö"s durch "oe" ersetzt. Hm, doch nicht. :gruebel:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:55 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz