rig: Interpretation von "HTML-Name"

Hallo,

folgendes Code-Beispeil:

var htmlCell  = document.createElement('td');
  htmlCell.appendChild(document.createTextNode('ä'));

Was wird nun der der Tabelle dargetellt: Richtig, der String 'ä'. Nun will ich aber eigentlich ein 'ä' dargestellt haben. Gibt es in JavaScript eine Funktionalität, mit der ich HTML-Namen in Zeichen umwandeln kann oder muß ich mir eine eigene Ersetzungsroutine schreiben?

Gruß
  rig

  1. Hello out there!

    Was wird nun der der Tabelle dargetellt: Richtig, der String 'ä'.

    Nicht unbedingt; das hängt davon ab, ob der Inhalt des script-Elements vom Typ CDATA oder PCDATA ist (bei Verarbeitung von XHTML als 'application/xhtml+xml').

    Nun will ich aber eigentlich ein 'ä' dargestellt haben.

    Warum schreibst du dann kein 'ä' in den Quelltext?

    See ya up the road,
    Gunnar

    --
    “Remember, in the end, nobody wins unless everybody wins.” (Bruce Springsteen)
    1. Hi,

      ich bekomme die Daten (ein XML-Dokument ['text/xml']) über eine URL bereitgestellt und 'hole' sie mittels eines XMLHttpRequest-Objektes.
      Soviel ich weis holt das Servlet seinerseits die Daten aus einer DB, wo sie schon so gespeichert sind (also 'ä' als 'ä').

      Wenn ich die Sache wie oben beschrieben in eine Tabelle einfuege:

      var htmlCell  = document.createElement('td');
        htmlCell.appendChild(document.createTextNode('ä'));

      ist dann der Inhalt der TabellenZelle von Typ CDATA oder PCDATA (wie kann man das ermitteln)? Und wenn der Inhalt den Typen CDATA hat, wie mach ein ein PCDATA draus (und umgekehrt)?

      Danke für die schnelle Antwort & Gruß
        rig

      1. ich bekomme die Daten (ein XML-Dokument ['text/xml']) über eine URL bereitgestellt und 'hole' sie mittels eines XMLHttpRequest-Objektes.
        Soviel ich weis holt das Servlet seinerseits die Daten aus einer DB, wo sie schon so gespeichert sind (also 'ä' als 'ä').

        Das ist dann wohl ein Konzeptfehler.
        Du solltest nicht in der DB, Sachen abspeichern, die erst beim darstellen eine Rolle spiele, zumal diese entities nur Notwendig sind, falls du dein HTML Dokument mit einer falschen Charset Angabe auslieferst.

        Struppi.

        1. Hi,

          Konzept-Fehler hin oder her. Das Projekt ist halt so gewachsen. Und das mit dem XML-Dokument und Speichern in der DB war auch nur ein Anwendungsfall. Wir wollen z.B. auch andere HTML-Seite aufrufen, parsen und bestimmt Teile daraus darstellen. Wenn nun in dieser geparsten HTML-Seite auch HTML-Namen auftreten ist das kein Konzept-Fehler...

          Gruß
            rig

          1. Konzept-Fehler hin oder her. Das Projekt ist halt so gewachsen. Und das mit dem XML-Dokument und Speichern in der DB war auch nur ein Anwendungsfall.

            Das hat aber nichts mit den ententies zu tun. Du sprichst ja die ganze Zeit von Sonderzeichen und diese müssen weder im HTML Code noch in der DB irgendwie umgewandelt werden solange du den richtigen Zeichensatz verwendest.

            Wir wollen z.B. auch andere HTML-Seite aufrufen, parsen und bestimmt Teile daraus darstellen. Wenn nun in dieser geparsten HTML-Seite auch HTML-Namen auftreten ist das kein Konzept-Fehler...

            In dem Falle ist die Verwendung von innerHTML das Vernüftigste. Du hast HTML Code und willst diesen darstellen -> innerHTML
            Ansonsten müßtest du ja immer den HTML Code von and bzw. mit JS parsen lassen und entsprechend die Knoten erzeugen. Das ist sicher möglich, aber da innerHTML bei allen Browsern die Ajax können funktioniert, warum sollte man das tun?

            Struppi.

            1. Hi,

              danke für den Tipp mit innerHTML - damit klappt es.

              Gruß
                rig

      2. Hello out there!

        ist dann der Inhalt der TabellenZelle von Typ CDATA oder PCDATA (wie kann man das ermitteln)?

        Aus der (X)HTML-DTD:

        <!ENTITY % Flow "(#PCDATA | %block; | form | %inline; | %misc;)*">  
        <!ELEMENT td       %Flow;>
        

        Das nur nebenbei. Denn darum geht’s nicht.

        Entscheidend ist, welchen Typs der Inhalt des script-Elements ist (<http://de.selfhtml.org/html/xhtml/unterschiede.htm#script_style@title=Unterschiede zwischen XHTML und HTML> [SELFHTML]), und das auch nur, wenn XHTML als XML verarbeitet wird, und nicht vom Tag-Soup-Parser.

        Siehe [PCDATA-CDATA].

        See ya up the road,
        Gunnar

        --
        “Remember, in the end, nobody wins unless everybody wins.” (Bruce Springsteen)
        1. Hello out there!

          Siehe [PCDATA-CDATA].

          Grmpf, da stell ich mir jetzt noch mit Content Nagotiation selbst ein Bein.

          Gemeint war nicht http://gangstaplaya.de/TEST/pcdata-cdata.html
                    sondern http://gangstaplaya.de/TEST/pcdata-cdata.xhtml

          See ya up the road,
          Gunnar

          --
          “Remember, in the end, nobody wins unless everybody wins.” (Bruce Springsteen)