Das ganz normale Chaos, täglich frisch auf den Tisch. Direkt aus der hintersten Provinz in die Metropolen von Groß-Blogistan.


XML::XSLT

Fri, 03 Jul 2009 16:27:11 +0200

Grrrr! Es ist Nirgends dokumentiert, aber diese Perl Library kann xsl stylesheets nur auf Dateien anwenden. Es gibt anscheinend keine Möglichkeit, das auf ein DOM Objekt anzuwenden. Obwohl das intern sicher genau so gemacht wird. Da kann ich dann auch gleich system("xsltproc --novalid xhtml11.xsl tmp.xml") aufrufen, und das von dem externen Tool machen lassen. Und so funktioniert das jetzt auch.

Ohne das --novalid habe ich allerdings zu nahezu jedem Element ein merkwürdiges Attribut xml:space="preserve" dazu bekommen. Das scheint ein default Attribut der DTD zu sein. Mit --novalid wird da Nix hinzugefügt. Auch nicht mit --nodtdattrs. Aber die Validierung kostet massig Zeit. Dabei wird die Zeit allerdings nicht für die eigentliche Validierung verbraten, sondern für das Laden der vielen DTDs. Das kann mit einem Proxy wie z.B. squid beschleunigt werden (ich hab's ausprobiert), aber was soll's, es geht noch schneller ohne Validierung.

So weit, so gut. Jetzt kommt ein etwas schwereres Kapitel: Die breadcrumb Navigation. Der Pfad rückwärts bis zur Startseite sollte nicht in jeder Quelldatei auf's Neue angegeben werden müssen. Das wäre lästig. Also muss das Perl Script sich durch die verschiedenen Dateien hangeln und selbst diesen Weg finden. Dabei wird in jeder Quelldatei nur der Link zum direkten Elternelement angegeben. Im Prinzip also Alles ganz einfach. Nur sollen dabei die relativen Pfade erhalten bleiben. Da muss ich also viel viel rumwurschteln.

Ach ja, was noch fehlt, ist eine Konfigurationsdatei, in der ein paar generelle Angaben stehen, die für alle Seiten gelten. Es ist lästig, in jeder Quelldatei auf's Neue den Author und die Lizenz mit anzugeben. Also besser in eine Konfigurationsdatei. Das kann dann bei Bedarf automatisch mit hinzugefügt werden.

Demnächst werden also meine sonstigen Seiten nach und nach auf das neue System umgestellt. Wenn Alles gut funktioniert, wird bald mein Blog folgen.


0 Kommentare