• beyond tellerrand – play. Register Now!
Zurück   Flashforum > Flash > Flash Fortgeschritten > Flash MX

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 01-06-2005, 12:00   #1 (permalink)
Nixversteher
 
Registriert seit: Feb 2003
Ort: Berlin
Beiträge: 136
XML-Sonderzeichen in Flash

Ich importiere eine XML-Daten in der unter anderem Strings wie "Schulze & Maier". Wie bekomme ich das hin, dass Flash aus dem & wieder ein & macht ?

Mit den anderen XML-Zeichen (Quotes, Apos und Tag-Klammern) ist das auch so. Umlaute werden dank UTF-8 gut importiert.
DasX ist offline   Mit Zitat antworten
Alt 01-06-2005, 12:48   #2 (permalink)
Euer Nuser
 
Benutzerbild von ~pyropete~
 
Registriert seit: Apr 2004
Ort: Sand-City
Beiträge: 3.482
Guck Dir mal diesen Link dazu an:

http://www.macromedia.com/support/fl...l_encoding.htm

Müsstest die Sonderzeichen im XML halt anders setzen, also keine HTML-Codierung.

--pp
~pyropete~ ist offline   Mit Zitat antworten
Alt 01-06-2005, 13:21   #3 (permalink)
Nixversteher
 
Registriert seit: Feb 2003
Ort: Berlin
Beiträge: 136
Der Beitrag auf der Macromedia-Seite befasst sich mit dem Encoding von URLs.

Wenn ich versuche in Flash den String '%26' auszugeben, wandelt er diese Zeichenkette nicht in ein & um.

Für das ersetzen des & durch andere Zeichen fehlt Flash leider eine ordentliche String-Replace-Funktion, um daraus wieder das & heraus zu holen.
DasX ist offline   Mit Zitat antworten
Alt 01-06-2005, 14:29   #4 (permalink)
Euer Nuser
 
Benutzerbild von ~pyropete~
 
Registriert seit: Apr 2004
Ort: Sand-City
Beiträge: 3.482
Zitat:
Zitat von DasX
Wenn ich versuche in Flash den String '%26' auszugeben, wandelt er diese Zeichenkette nicht in ein & um.
Lad mal eine txt-datei mit %26 rein, dann wird das & korrekt angezeigt. Mein Gedanke war dass das sicher auch aus einem XML-Knoten bzw. ner Variable funktionieren dürfte.

--pp
~pyropete~ ist offline   Mit Zitat antworten
Alt 01-06-2005, 14:38   #5 (permalink)
zimmer 101
 
Benutzerbild von ricobeck
 
Registriert seit: Jul 2003
Ort: LE
Beiträge: 1.575
eventuell hilft dir dieser prototype:

ActionScript:
  1. String.prototype.htmlUnencode = function() {
  2.     s = this;
  3.     a = s.split("&"); s = a.join("&");
  4.     a = s.split(" "); s = a.join(" ");
  5.     a = s.split("&eq;"); s = a.join("=");
  6.     a = s.split("&lt;"); s = a.join("<");
  7.     a = s.split("&gt;"); s = a.join(">");
  8.     a = s.split("&quot;"); s = a.join('"');
  9.     return s;
  10. }

da ist er her.

l.g.
rick
__________________
Illogical comparison with NaN. Any comparison operation involving NaN will evaluate to false because NaN != NaN.
ricobeck.de
ricobeck ist offline   Mit Zitat antworten
Alt 03-06-2005, 11:30   #6 (permalink)
loveandhateflash
 
Registriert seit: Oct 2001
Ort: ffm
Beiträge: 207
ist deine xml ordentlich utf-8 codiert wirst du ab flashplayer 6 weniger probleme haben. html-encoding von sonderzeichen functioniert meines wissens nicht immer. es hängt z.b. davon ab, ob du den text aus einem cdata bereich ausliest, aus einem textelement oder einem attribut. beim parsen macht es einen unterschied, ob html-formatierung und encoding-art überhaupt erkannt werden und wie sie interpretiert werden.
unter windows ist man da immer recht sicher, aber selbst wenn man utf-8 benutzt, kann es unter mac os noch mal andere ergebnisse geben (bei plain-text dateien weniger, wohl aber bei xml).
url-encoding ist sicherer v.a. weil einige programm den export von xml in utf-8 nur vorgeben, die datei aber gar nicht als utf-8 abgespeichert wird (z.b. alte dreamweaver versionen). wenn du url-encoding benutzt, musst du aber alle sonderzeichen korrekt und durchgängig wandeln und beim parsen wieder zurückwandeln. folgender knoten:
Code:
 <strecke name="Korrespondentenb%C3%BCro+Marburg" aktiv="" laenge="171" breite="231" link="http%3A%2F%2Fwww.hr-online.de%2Fwebsite%2Fderhr%2Fhome%2Findex.jsp%3Frubrik%3D2724"> <![CDATA[ hr-B%C3%BCro+Marburg%3CBR%3EBarf%C3%BC%C3%9Ferstra%C3%9Fe+50%3CBR%3E35037+Marburg
  ]]> 
  </strecke>
ist durchgängig url-encodiert. auf den cdata-bereich hätte man in diesem fall auch zugunsten eines normalen textknotens verzichten können.
beim parsen musst du auf folgendes achten:
ActionScript:
  1. _global.Staedte = new XML ();
  2. _global.Staedte.ignoreWhite = true;
  3. _global.Staedte.onLoad = handleload;
  4. _global.Staedte.onData = function (pfad) {
  5.     trace("Die Quelldaten: \n" + pfad);
  6.     if (pfad == undefined){
  7.         this.onLoad(false);
  8.     } else{
  9.         [B]gewandelt = unescape (pfad);
  10.         this.parseXML (gewandelt);[/B]
  11.         this.loaded = true;
  12.         this.onLoad(true);
  13.     }
  14. };
auf "unescape" könntest du verzichten, wenn du deine xml nicht komplett url-encodet hast. es kommt also auf mehrere faktoren an:
- sind sonderzeichen in der xml enthalten
- wo stehen sie (attribut, textelement, cdata bereich)
- ist die xml korrekt als utf-8 abgespeichert
- welches betriebssystem wird benutzt
- wird url-encodet (escaped) oder nicht
- wie wird html behandelt
- wird unescape beim parsen verwendet oder nicht
- ...
probier einfach verschiedene methoden aus und teste sie auch auf alten mac os und unix-basierten system. je nachdem welche software du für die erstellung des xmls benutzt, wirst du schon einen handelbaren weg für dich finden.
zungenbrecher ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 19:17 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele