Mirimar: HTML-Code via XML schicken

Hallo liebe selfhtml-Gemeinde,

um mich kurz vorzustellen, ich lerne nun schon seit einigen Monaten HTML/PHP/JSCRIPT und was denn da sonst noch zur Webentwicklung gehört, und beschäftige mich jetzt seit ein paar Stunden mit Ajax, daher hoffe ich, dass über meine Frage nicht allzu sehr geschmunzelt wird, aber bei mir tritt folgendes Problem auf:

Ich habe ein Javascript welches via AJAX Daten an ein PHP Script schickt (was solls auch sonst tun?). Mein PHP Script wertet diese aus und soll als Antwort mehrere Variablen liefern. Soweit sogut... Nach kurzer Recherche finde ich nun also die Lösung über XML die mich begeistert. Sieht doch auf den ersten Blick wahnsinnig simpel aus.

Dann aber der Schock, der Größte Teil der Antwort des Scripts ist nämlich ein zusammengebasteltes Template, sprich HTML Code. Dieser lässt sich aber anscheinend nicht so gerne per XML transportieren, was nun angesichts der Formatierung auch logisch erscheint.

Und meine Konkrete Frage nun zum Schluss, gibt es eine Möglichkeit wie ich das ganze einfach lösen kann (z.B. irgendwie escapen) damit das hier funktioniert?

echo "<?xml version="1.0" encoding="utf-8"?>\n";
echo "<xmlrequest>\n";
echo " <modul>".$modul."</modul>\n";
....und noch ein paar andere kleine Variablen...
echo " <content>".$content."></content>\n";
echo "</xmlrequest>\n";

$content besteht wie gesagt aus einem meist etwas komplexeren Template (HTML Code).

Ich binn euch für eure Hilfe oder den Versuch sehr dankbar. Sollte das alles Humbug sein bin ich auch froh wenn ihr mir tolle Bücher und Tutorials vorschlagen könnt damit ich so einen Stuss nicht noch einmal fragen muss ;)

Danke,
LG

  1. Als kurze Anmerkung, ich bin nun auf die Idee gekommen CDATA zu verwenden und das scheint wohl der korrekte weg zu sein, aber dennoch bekomme ich das nicht wirklich hin.

    Sieht jetzt wie folgt aus:

    echo "<?xml version="1.0" encoding="utf-8"?>\n";
    echo "<xmlrequest>\n";
    echo " <modul>".$modul."</modul>\n";
    ... usw usw usw...
    echo " <content><![CDATA[".$content."]]></content>]]>\n";
    echo "</xmlrequest>\n";

    Wo könnte der Hund hier jetzt begraben liegen? Mein Debugger sagt mir nur:

    SCRIPT5007: Für die Eigenschaft "firstChild" kann kein Wert abgerufen werden: Das Objekt ist Null oder undefiniert
    main_changeBox.js, Zeile 71 Zeichen 21

    Da das Problem in Zeile 71 liegt bin ich davon überzeugt dass das komplette XML-File so nicht mehr funktioniert... Da der content erst ein paar zeilen Später abgefragt wird.

    1. Da das Problem in Zeile 71 liegt bin ich davon überzeugt dass das komplette XML-File so nicht mehr funktioniert... Da der content erst ein paar zeilen Später abgefragt wird.

      // DONE //
      Bin nur zu doof zum lesen :)

  2. Hi!

    ich lerne nun schon seit einigen Monaten HTML/PHP/JSCRIPT

    JScript ist ein JavaScript-Dialekt von Microsoft und deshalb keine geeignete Abkürzung für JavaScript.

    Mein PHP Script wertet diese aus und soll als Antwort mehrere Variablen liefern.

    Formulierungsfehler. PHP-Variablen leben nur innerhalb PHPs. Du willst ihren Inhalt liefern, wozu er gegebenenfalls in eine transportierfähige Version gebracht werden muss. Für Zahlen empfiehlt es sich beispielsweise sie in ihr Literal zu verwandeln, sprich: konvertieren in String.

    Nach kurzer Recherche finde ich nun also die Lösung über XML die mich begeistert. Sieht doch auf den ersten Blick wahnsinnig simpel aus.

    Ist es dann aber doch nicht, wie du festgestellt hast. JSON wäre einen Blick wert, das scheint mir für deinen Zweck noch einfacher.

    Dann aber der Schock, der Größte Teil der Antwort des Scripts ist nämlich ein zusammengebasteltes Template, sprich HTML Code. Dieser lässt sich aber anscheinend nicht so gerne per XML transportieren, was nun angesichts der Formatierung auch logisch erscheint.
    Und meine Konkrete Frage nun zum Schluss, gibt es eine Möglichkeit wie ich das ganze einfach lösen kann (z.B. irgendwie escapen) damit das hier funktioniert?

    Na klar. Wie üblich muss der Kontextwechsel beachtet werden. Immer, wenn du Daten irgendwo anders einfügst. Der XML-Kontext kennt <, >, & sowie teilweise " und ' als Zeichen mit besonderer Bedeutung. Wenn du diese Bedeutung nicht haben willst, verwende ihre Entity- oder NCR-Schreibweise.

    Lo!