tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
3
ZUGRIFFE
7890
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Registriert seit
    Jun 2002
    Ort
    Saarbrücken (Saarland)
    Beiträge
    9.886
    Blog-Einträge
    29
    Hallo!

    Falls ihr euch mal mit XML und XSLT befassen wolltet, jedoch nie mehr als den Internet Explorer dazu bemüht hat die XML gegen das XSLT Template zu rendern findet hier abhilfe:

    http://saxon.sourceforge.net
    Saxon ist ein Open Source XSLT Prozessor der es ermöglicht auf der Kommandozeile oder innerhalb eines Java Programms XLM Dokumente nach einem XSLT Template gerendert zu generieren.

    Saxon setzt eine installierte Java 1.4 Laufzeitumgebung voraus.

    Saxon verwenden ist ganz einfach.

    Zuerst laden wir uns mal das Projekt von SourceForge herunter:
    http://sourceforge.net/projects/saxon

    --> Download (Saxon 8.0):
    http://prdownloads.sourceforge.net/s...0.zip?download

    Danach entpacken wir das Zip Archiv in irgend ein Verzeichniss
    Z.bsp.: c:\Saxon

    In diesem verzeichnis finden wir dann die Datei saxon8.jar welche wir für unsere Anwendungen brauchen.

    Wir erstellen nun mal ein Minimales Beispiel XML und eine XSLT Datei um das Ganze mal auszuprobieren. Dabei lassen wir uns aus der XML Datei über die Anweisungen in der XSLT Datei eine HTML Datei erzeugen.

    Wir legen ein Verzeichniss namens XMLTest unter c:\ an
    -> c:\XMLTest

    Nun erstellen wir die Datei Test.xml

    Test.xml
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    
    <?xml version="1.0"?>
    <?xml-stylesheet type="text/xsl" href="Prozessor.xsl"?>
    <firma name="XYZ Company">
        <angestellte>
            <angestellter name="Thomas" alter="20"/>
            <angestellter name="Richard" alter="22"/>
        </angestellte>
    </firma>

    Darauf folgend kümmern wir uns um die Prozessor.xsl
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    
    <?xml version="1.0"?>
    <!--Prozessor.xsl-->
    <xsl:stylesheet version="1.0" 
     xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
       <xsl:template match="/">
          <html>
             <head>
                <title>
                   <xsl:value-of select="firma/@name"/>
                </title>
            </head>
            <body>
                   <xsl:value-of select="firma/@name"/>
               <table border="2">
                  <xsl:for-each select="/firma/angestellte/angestellter">
                      <tr>
                        <td><xsl:value-of select="@name"/></td>
                        <td><xsl:value-of select="@alter"/></td>
                      </tr>
                  </xsl:for-each>
               </table>
            </body>
          </html>
       </xsl:template>
    </xsl:stylesheet>

    Nun öffnen wir eine Konsole und wechseln in das Verzeichnis c:\xmlTest

    Dort setzen wir nun das Kommando:
    Code :
    1
    2
    
    C:\xmlTest>java -cp c:\saxon\saxon8.jar net.sf.saxon.Transform -o Test.html Test
    .xml Prozessor.xsl

    Ab und finden nach Beendigung dieses Kommandos die Datei C:\xmlTest\Test.html

    Mit dem folgendem Inhalt:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    
    <html>
       <head>
          <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
       
          <title>XYZ Company</title>
       </head>
       <body>XYZ Company
          <table border="2">
             <tr>
                <td>Thomas</td>
                <td>20</td>
             </tr>
             <tr>
                <td>Richard</td>
                <td>22</td>
             </tr>
          </table>
       </body>
    </html>

    Hoffe ihr könnt das Anwendungsbeispiel leicht nachvollziehen.

    GrußTom
     

  2. #2
    wilma Tutorials.de Gastzugang
    Hallo Tom,

    vielen Dank für die Anleitung, Sie ist super simpel!

    Weisst Du auch noch eine einfache Lösung für das gleiche Spiel über ein ganzes Directroy?

    Viele Grüße,
    wilma
     

  3. #3
    MMP Tutorials.de Gastzugang
    Das geht mit der freeware AntillesXML. Ist hier zu finden:

    http://www.data2type.de
     

  4. #4
    puntila puntila ist offline Grünschnabel
    Registriert seit
    Jul 2010
    Beiträge
    1
    Hallo Thomas,

    super Anleitung. Habe das Ganze unter einer Windows-Mühle gemacht. Funktionierte anfänglich nicht, weil ich Java nicht installiert hatte und Java und Saxon nicht in der Umgebungsvariablen PATH gesetzt hatte. Also zunächst folgende Schritte:

    1/ Java installieren: jre-6u21-windows-i586-iftw-rv.exe
    2/ PATH erweitern um "C:\Programme\Java\jre6\bin"

    Dann Deine beiden obigen Dateien test.xml und test.xsl erstellen und dann:

    C:\Programme\Saxon\test>java -cp c:\Programme\Saxon\saxon9he.jar net.sf.saxon.Transform -o test.html test.xml test.xsl

    Antwort:

    Warning: at xsl:stylesheet on line 4 column 51 of test.xsl:
    Running an XSLT 1.0 stylesheet with an XSLT 2.0 processor

    Liefert die gewünschte HTML-Datei test.html.


    Danke
     

Ähnliche Themen

  1. XSLT & Saxon
    Von Wurzelseppi im Forum Java
    Antworten: 2
    Letzter Beitrag: 30.03.09, 08:36
  2. XSLT-Prozessor
    Von Turcy im Forum Enterprise Java (JEE, J2EE, Spring & Co.)
    Antworten: 2
    Letzter Beitrag: 14.10.08, 20:30
  3. Welcher XSLT Prozessor?
    Von Perilymphe im Forum XML Technologien
    Antworten: 7
    Letzter Beitrag: 09.10.07, 17:52
  4. XSLT - saxon schmeißt nur leeres Zieldokument raus
    Von PetraC im Forum XML Technologien
    Antworten: 1
    Letzter Beitrag: 22.04.07, 23:48
  5. Saxon 6.5 vs Saxon 8: Strings vergleichen
    Von chaertl im Forum XML Technologien
    Antworten: 0
    Letzter Beitrag: 03.07.06, 12:55