Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 28-09-2006, 20:42   #1 (permalink)
liebt Skorpionin
 
Benutzerbild von Skorpion
 
Registriert seit: Apr 2003
Beiträge: 1.258
XML auslesen: Otto wird gesucht ;0)

Ich suche einen einfachen Weg um in einem xml-File wie dem Folgenden alle otto-Knoten mit trace auszugeben. Die Ottos können in beliebiger Tiefe auftauchen.
(Das Einlesen des XML-Files nicht nicht relevant).
Hat mir jemand einen Tipp?

PHP-Code:
<pip>

    <
otto>JAHIER IST EIN OTTO!</otto>
    
    <
popipup>
    
        <
otto>UND HIER IST NOCH EIN OTTO!</otto>
        
    </
popipup>
    
    <
papipupi>
        <
pipop>
        
            <
otto>DER LETZTE OTTO!</otto>
            
        </
pipop>
    </
papipupi>

</
pip
Skorpion ist offline   Mit Zitat antworten
Alt 28-09-2006, 20:56   #2 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
die bequemlichkeit kennt mal wieder keine grenzen ;-)

da wirst du schon ein programm schreiben müssen, das alle nodes durchgeht und auf 'otto's prüft.

Code:
_xml = new XML('<pip><otto>JA, HIER IST EIN OTTO!</otto>
    <popipup><otto>UND HIER IST NOCH EIN OTTO!</otto>
    </popipup><papipupi><pipop><otto>DER LETZTE OTTO!</otto>
    </pipop></papipupi></pip>');
//
_array = _xml.toString().split('<otto>').reverse();
for (i in _array) {
	var h = _array[i].split('</otto>');
	if (h.length>1) trace(h[0]);
}
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (28-09-2006 um 21:19 Uhr)
hgseib ist offline   Mit Zitat antworten
Alt 29-09-2006, 00:37   #3 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Hm, ich würde die Nodevalues in Attribute setzen und dann mit der XPATH-API auslesen, das wird bei sich wiederholenden Attributen wohl am schnellsten gehen. Bspw. im XML-File
Zitat:
<pip>
<otto txt="JA, HIER IST EIN OTTO!"/>
</pip>
Und in Flash etwa so:
PHP-Code:
import mx.xpath.XPathAPI;

iniXML = new XML();// Neues XML-Objekt anlegen 
iniXML.ignoreWhite true;// whitespace in XML ignorieren (z.B. CRLF etc)
iniXML.onLoad inixmlonload;//onLoad-Handler zuweisen
iniXML.load("mein.xml");

function 
inixmlonload (success){
   if (
success) {//kein Fehler beim Laden aufgetreten
      
var ottotxt XPathAPI.selectNodeList(this.firstChild"/pip/otto[@txt]");
      
txt ottotxt[0].attributes.file;
      
trace("txt="+txt);
   }

Infos zur XPATH-API gibt es u.a. auch hier.
  Mit Zitat antworten
Alt 29-09-2006, 07:54   #4 (permalink)
liebt Skorpionin
 
Benutzerbild von Skorpion
 
Registriert seit: Apr 2003
Beiträge: 1.258
hi hgseib, hi agedoubleju, danke für eure Antworten.


@hgseib: Interessante, unkonventionelle Angehensweise, so hab ich das noch gar nie betrachtet. Deine Lösung funktioniert. Vielen Dank.


@agedoubleju: Dein Vorschlag ist vermutlich der 'offiziellere', und im Grunde würde ich diese Lösung vorziehen. Konnte mein Problem damit jedoch nicht wirklich lösen. Der Haken besteht darin, dass .selectSingleNode() zwar knotenübergreifend nach dem otto sucht (mithilfe von Wildcards (*/*/*/otto), nicht aber in verschiedenen Levels des xml-Files.
Oder hab ich da was missverstanden?
Unklar ist mir auch, warum du vorschlägst, die Nodevalues in Attributen zu setzen.
Aber natürlich auch dir herzlichen Dank. Kannte die XPATH-API noch nicht, und kann sie vielleicht bei anderen Problemstellungen brauchen.

Greetings - Skorpion
Skorpion 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 13:50 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele