HTMLWorld - HTML, CSS, JavaScript, PHP, Java, Flash und vieles mehrHTMLWorld:   Home | Impressum
 

 
 

Anzeige 
 
HTMLWorld » Forum

Thema anzeigen - <xsl:apply-templates select="html" /> wird n

 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen   RegistrierenRegistrieren 
 ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

<xsl:apply-templates select="html" /> wird n

 

Neues Thema eröffnen   Neue Antwort erstellen    HTMLWorld Foren-Übersicht
   XSL, XSLT, XPath, XLink, XPointer, X...
Vorheriges Thema:
Nächstes Thema:  
Autor Nachricht
heiko



Anmeldungsdatum: 15.02.2007
Beiträge: 2

BeitragVerfasst am: 15.02.2007 11:09:38    Titel: <xsl:apply-templates select="html" /> wird n Antworten mit Zitat

Hallo,

ich wollte ein eigenes XSLT schreiben was HTML in FO konvertiert um Web-Seiten später über FOP in PDF oder TIFF umzuwandeln.

Das XSLT reagiert jedoch nicht auf die Zeile 22
Code:

 <?xml version="1.0" encoding="UTF-8"?>
 <xsl:stylesheet version="2.0"
   xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
   xmlns:xs="http://www.w3.org/2001/XMLSchema"
   xmlns:fn="http://www.w3.org/2005/xpath-functions"
   xmlns:fo="http://www.w3.org/1999/XSL/Format">

   <xsl:output method="xml" version="1.0" encoding="UTF-8"
     indent="yes" omit-xml-declaration="yes"/>

   <xsl:include href="pagelayout.xslt" />

   <xsl:template match="/">
     <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">

      <xsl:call-template name="page-layout-A4" />

      <fo:page-sequence master-reference="A4">
         <fo:flow flow-name="xsl-region-body">
           <fo:block>
             <!-- Daten für PDF -->
             <xsl:apply-templates select="html" />
           </fo:block>
         </fo:flow>

       </fo:page-sequence>
     </fo:root>
   </xsl:template>

   <xsl:template match="html">
     <fo:block>
       <xsl:text>html</xsl:text>
     </fo:block>
   </xsl:template>

 </xsl:stylesheet>

Das Zu bearbeitende Dokument ist eine HTML-Seite die vorher mit JTidy in ein gültiges XHTML-Dokument umgewandelt wurde. Hier mal die ersten Zeilen des XHTML-Dokumentes:
Code:

<?xml version="1.0" encoding="ISO-8859-1"?>
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta content="HTML Tidy for Java (vers. 26 Sep 2004), see www.w3.org"
      name="generator" />
    <title />
  </head>
  <body>
    Hallo Heiko,
    <br />
    [...]
  </body>
</html>

Ich hab die Transformation sowohl mit Saxon B8.9 wie auch mit Xalan 2.7.0 ausgeführt. Das Ergebnis sieht dann jeweils entsprechend aus:
Code:

<?xml version="1.0" encoding="ISO-8859-1" ?>
  <fo:root xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns:fn="http://www.w3.org/2005/xpath-functions"
    xmlns:fo="http://www.w3.org/1999/XSL/Format">
    <fo:layout-master-set>
    <fo:simple-page-master master-name="A4"
      page-height="29.7cm" page-width="21cm"
      margin-top="2cm" margin-bottom="2cm"
      margin-left="2cm" margin-right="0.5cm">
      <fo:region-body />
    </fo:simple-page-master>
  </fo:layout-master-set>

  <fo:page-sequence master-reference="A4">
    <fo:flow flow-name="xsl-region-body">
      <fo:block />
    </fo:flow>
  </fo:page-sequence>
</fo:root>

In dieser Ausgabe Fehlt jedoch die Zeile 32 aus dem XSLT.

Ich Poste hier auch mal die Debug-Ausgaben der Transformationen.
Saxon:
Code:

<trace saxon-version="8.9" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <source node="/" line="0" file="012-message.xhtml">
  <xsl:template match="/" line="13" module="toPDF.xslt">
   <xsl:template name="page-layout-A4" line="5" module="pagelayout.xslt">
    <ATTR name="master-name" line="7" module="pagelayout.xslt">
    </ATTR>
    <ATTR name="page-height" line="7" module="pagelayout.xslt">
    </ATTR>
    <ATTR name="page-width" line="7" module="pagelayout.xslt">
    </ATTR>
    <ATTR name="margin-top" line="7" module="pagelayout.xslt">
    </ATTR>
    <ATTR name="margin-bottom" line="7" module="pagelayout.xslt">
    </ATTR>
    <ATTR name="margin-left" line="7" module="pagelayout.xslt">
    </ATTR>
    <ATTR name="margin-right" line="7" module="pagelayout.xslt">
    </ATTR>
   </xsl:template>
   <ATTR name="master-reference" line="18" module="toPDF.xslt">
   </ATTR>
   <ATTR name="flow-name" line="19" module="toPDF.xslt">
   </ATTR>
  </xsl:template>
 </source><!-- / -->
</trace>

und Xalan:
Code:

file:///D:/workspace/sdp/xhtml2pdf/testdata/../xslt/toPDF.xslt Line #13, Column #27: template match='/'
STARTDOCUMENT
file:///D:/workspace/sdp/xhtml2pdf/xslt/pagelayout.xslt Line #5, Column #38: template name='page-layout-A4'
STARTELEMENT: fo:root
STARTELEMENT: fo:layout-master-set
STARTELEMENT: fo:simple-page-master
STARTELEMENT: fo:region-body
ENDELEMENT: fo:region-body
ENDELEMENT: fo:simple-page-master
ENDELEMENT: fo:layout-master-set
STARTELEMENT: fo:page-sequence
STARTELEMENT: fo:flow
Selected source node '#document', at file 'file:///D:/workspace/sdp/xhtml2pdf/testdata/pdf/012-message.xhtml', line #-1, column #-1
file:///D:/workspace/sdp/xhtml2pdf/testdata/../xslt/toPDF.xslt Line #22, Column #44: apply-templates, select='null':
     [empty node list]
STARTELEMENT: fo:block
ENDELEMENT: fo:block
ENDELEMENT: fo:flow
ENDELEMENT: fo:page-sequence
ENDELEMENT: fo:root
ENDDOCUMENT


--------- Umsetzung von pdf\012-message.xhtml über ..\xslt\toPDF.xslt betrug 1.051 Millisekunden

Danke schon mal im vorraus
Heiko
[/code]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
heiko



Anmeldungsdatum: 15.02.2007
Beiträge: 2

BeitragVerfasst am: 16.02.2007 10:45:55    Titel: Antworten mit Zitat

Es Funktioniert nachdem ich das Encoding der XHTML-Datei auf UTF-8 änderte. Wird wohl daran liegen das der Editor es als Unicode speicherte aber der XSLT-Processor es als ISO-8859-1 interpretieren wollte.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    HTMLWorld Foren-Übersicht
   XSL, XSLT, XPath, XLink, XPointer, X...
Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.