HTML-Tags in XML ignorieren

Ensign

Mitglied
Da im XML-Forum mir bisher leider niemand helfen konnte, stell ich meine Frage einmal an die Flasher, die dieses Problem sicherlich auch schon bewältigen mussten.

Ich hab eine XML-Datei, die ich in Flash einbinde um damit ein Newssystem zu gestalten. Nun gibt es dort auch HTML-Tags, die die XML-Datei dann natürlich stören (wie <b> oder <IMG SRC="bild.jpg">...).

Hier mein Code:
PHP:
<?xml version="1.0" encoding="iso-8859-1" ?>
<root>
<menuroot>
<menu id="menu_0" title="main"><IMG SRC="http://localhost/arttemptation/pics/smile/smile11.gif"></menu>
<menu id="menu_1" title="news"></menu>
<menu id="menu_2" title="termine"></menu>
<menu id="menu_3" title="gallery"></menu>
</menuroot>
</root>

Vielleicht weiß jemand weiter oder einen anderen Weg, denn ich brauch HTML für die Newsanzeige dann.

Vielen Dank!
 
Hi,

hmm, scheinbar verweigert der Parser das Parsen nach dem img-Tag... einige Versuche haben mich zu dem Schluss geführt, dass mit "Bordmitteln" wohl nicht viel zu machen ist - Du könntest allerdings die störenden html-Tags per Hand rausfiltern. Hier mal ein kleines Beispiel, das nur die img-Tags filtert (Voraussetzung: Anständig geschlossene Tags und keine Syntaxfehler):
PHP:
lv = new LoadVars();

lv.load("test.xml");

lv.onLoad = function() {
	parseXM(cut(this.toString()));
}

function cut(str) {
	str = unescape(str); // Enkodieren
	str = str.substr(0, str.length - 24); // LoadVars-Relikt entfernen
	for (var i=0; i<str.length; i++) {
		// IMG-Tags herausfiltern:
		if (str.substr(i,4).toLowerCase() == "<img") {
			tend = str.indexOf(">", i);
			str = str.substr(0, i-1) + str.substr(tend); // Schneinen
		}
		// ggf. nach weiteren Tags suchen
	}
	return str;
}

function parseXM(str) {
	var xm = new XML();
	xm.ignoreWhite = true;
	xm.parseXML(str);
	var menue = xm.firstChild.firstChild;
	for (var i = 0; i< menue.childNodes.length; i++) {
		trace("NODE: " + i);
		trace(menue.childNodes[i]);
	}
}
Die Funktion parseXM() ist hier nur zu Testzwecken und gibt nur genau Dein Objekt aus. Ich gehe davon aus, dass Du ein beliebiges XML-Objekt parsen kannst... interessant ist hier höchstens die Funktion zum Herausschneiden der verbotenen Tags. ;)

Gruß

P.S.: Mag sein, dass ich hier totalen Blödsinn geredet habe und es im Endeffekt doch ganz anders geht, aber es ist eigentlich noch zu früh am Morgen zum Denken...
.
 
Zurück