Teile einer XML formatieren

p-flash

Erfahrenes Mitglied
Hi,

ich möchte Texte aus einer XML laden, bei dem nur gewisse Textabschnitte zB fett sind.

zB
<news>Neues <b>Tutorial</b></news>

Dabei soll Tutorial fett sein. Und das alles auch mit Zeilenumbruch etc.

Danke...

p-flash
 
*sich loeffellutscher anschließen muss*

Woran hängts?

Das Problem bei XML-Dateien mit html-Tags ist, dass diese Tags entweder als Knoten interpretiert werden (dann musst Du selbst dafür sorgen, bis wo Du die Knoten zerlegst), oder dass sie (wie z.B. bei PCDATA) von vornehrein in Entitäten wie &lt; %gt; etc. umgewandelt sind. In diesem Fall musst Du diese Zeichen (am besten mit split und join) wieder in brauchbare Zeichen transformieren.

Gruß
.
 
Das Problem ist dass <b> als Tag gesehen wird, und deshalb der nach folgende Text nicht angezeigt wird. Gibt es keinen besseren Weg als mit split and join?

Danke.

p-flash
 
Nö,

entweder, Du parst Dich nur bis zum <news>-Tag voran und serialisierst alles darin enthaltene per toString(), den Du dem Textfeld zuweisen kannst, oder Du packst den "Nutzinhalt" in Parsed Character Data (klick) - dafür sind die schließlich da. ;)

Woher soll ein XML-Objekt auch sonst wissen, welche Tags zum Aufbau des Baumes und welche zur Darstellung von irgendwelchen html-Texten da sind?

Das Umwandeln von Entitäten in Klartext ist doch eigentlich ganz einfach. Leg die ein Array mit allen nötigen Entitäten an, und tausch die Zeichen so aus:
PHP:
meinstring.split("&lt;").join("<");

Gruß

P.S.: Ein anderer Trick: Weise den String zuerst der htmlText-Eigenschaft eines (versteckten) Textfeldes zu, lies dort die .text-Eigenschaft aus und verwende sie als htmlText-Eigenschaft eines weiteren (sichtbaren) Textfeldes. ;-)

P.P.S: Du musst bei Methode 1 natürlich schreiben:
Code:
<br/>
, da alle Tags geschlossen sein müssen. Diese Vorgehensweise hat dennoch ihre Tücken, da der kleinste Fehler im html-Code Dir Dein ganzes Objekt versaut...
.
.
 
Zurück