jpnox: Trennung von Code, Content und Gestaltung

Hallo!
Ich suche nach einer praktischen Technik Inhalte, Gestaltung und Code zu trennen.
Bisher habe ich meine Websites immer so aufgebaut:
CONTENTS: in HTML-Code bzw aus Sqlite/Mysql - Datenbank
GESTALTUNG: mit CascadingStyleSheets
FUNKTIONALITÄT: mit PHP
optional: Schnickschnack mit Javascript

Jetzt habe ich XML entdeckt und bin vor allem wegen der einfachen lesbarkeit des Codes begeistert.
Doch wie kann ich ein *.xml-File dynamisch mit PHP verändern? Und wie gebt ihr dann das XML-File aus. Also gestaltet ihr das XML-file selbst mit CSS bzw XSL und gebt das dann aus oder verwendet ihr es nur als Datenbank und lest die Daten mit PHP (oder mit was auch immer) aus?

AJAX klingt auch nicht schlecht. Was haltet ihr davon?

Grüße jpnox

  1. Hallo jpnox.

    Jetzt habe ich XML entdeckt und bin vor allem wegen der einfachen lesbarkeit des Codes begeistert.

    Da bist du nicht der / die Einzige.

    Doch wie kann ich ein *.xml-File dynamisch mit PHP verändern?

    Möglichkeiten gibt es mehrere. Wenn du dich schon einmal mit DOM allgemein befasst hast, so kommen die entsprechenden Funktionen in PHP wie gerufen. Sie sind funktional sehr vielseitig und Manipulationen am Dokumentenbaum gehen entsprechend dem Kenntnisstand leicht von der Hand.
    Schwierigkeit hierbei: eine entsprechend vollständige Datenstruktur (z. B. ein Array) aus einem XML-Dokument zu holen; also inklusive Elementnamen, Inlineelementen und Attributen. In PEAR gibt es dafür eine Klasse, doch ausprobiert habe ich sie noch nicht.

    Eine weitere Möglichkeit stellt simplexml dar. Hiermit lässt sich zumindest in Bezug auf das Auslesen von Daten recht leicht arbeiten, da Dokumente automatisch in ein Array-ähnliches Objekt umgewandelt werden. Siehe hierzu auch diesen Thread im Archiv.

    Als nächstes gibt es noch die Möglichkeit, sich selbst einen eigenen XML-Parser zu schreiben. Dass man hiermit die maximale Kontrolle hat und gleichzeitig die Vorzüge von XML nutzen kann, mag angenehm sein, erfordert aber dem entsprechend auch sehr viel Entwicklungsarbeit.

    Zu XMLReader und xmlwriter kann ich mangels Umgang nichts sagen.

    Und schließlich bleiben dir natürlich noch die Datei- und Stringfunktionen um die XML-Dokumente wie ganz normale Dateien zu verarbeiten. Diese Lösung würde ich persönlich nur als allerletzte in Betracht ziehen, da sie keinerlei Nutzen aus XML zieht.

    Und wie gebt ihr dann das XML-File aus.

    Je nachdem, was du verwendest ist das Vorgehen unterschiedlich.
    Ich persönlich nutze momentan noch simplexml zum Ausgeben, bis ich oben erwähntes Problem „XML → Array“ gelöst habe.

    AJAX klingt auch nicht schlecht. Was haltet ihr davon?

    Es sollte mit Vorsicht genossen werden. Dass eine Webanwendung einzig und allein mit aktiviertem JavaScript nutzbar ist, ist nur dann akzeptabel, wenn darin ihr eigentlicher Nutzen ist. Stellt AJAX dagegen nur eine zusätzliche Funktionalität dar, dann sollte diese auch optional bleiben; die eigentliche Nutzbarkeit sollte nicht beeinträchtigt werden.

    Einen schönen Sonntag noch.

    Gruß, Ashura

    --
    sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
    „It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
    [HTML Design Constraints: Logical Markup]