Zurück   Flashforum > Flash > Flash Fortgeschritten > Flash 8

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 17-04-2007, 17:25   #1 (permalink)
unomuse
 
Benutzerbild von muse
 
Registriert seit: Jan 2003
Ort: Im wunderschönen Hamburg
Beiträge: 117
XML ohne Attribute auslesen

Hejhej Jungs,

ich hab mal ne Bitte; ich habe eine xml Datei, die wie folgt ausschaut:

<?xml version="1.0" encoding="utf-8"?>
<liste>
<item id="1">
<veranstaltung></veranstaltung>
<beschreibung>Tanz in den Mai!</beschreibung>
<link></link>
<logo>bild02.jpg</logo>
</item>
<item id="2">
<veranstaltung></veranstaltung>
<beschreibung></beschreibung>
<link></link>
<logo>bild02.jpg</logo>
</item>
<item id="3">
<veranstaltung></veranstaltung>
<beschreibung></beschreibung>
<link></link>
<logo>bild03.jpg</logo>
</item>
</liste>


Und was ich lediglich möchte, ist die Beschreibung "Tanz in den Mai" in ein bestehendes Textfeld in Flash zu packen mehr nicht. Aber mein Verständnis mit diesem XML-Kram reicht mit Ach und Krach gerade einmal für das auslesen mit Attributen aus dank zahlreicher Tutorials versteht sich. Und ich möchte für so eine Kleinigkeit nun wirklich keinen Auftrag schreiben ... daher bitte bitte helfen!

Merci!

Merci!
__________________
Da kann ja jeder aus'm Wald kommen und sagen, dass er der Förster ist.
muse ist offline   Mit Zitat antworten
Alt 17-04-2007, 21:08   #2 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Ich arbeite gerne mit der XPath-API, da sind die Zugriffe auf die einzelnen Knoten IMHO eindeutiger. Kleines Beispiel zum Auslesen deines XML-Files:
PHP-Code:
import mx.xpath.XPathAPI;

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


function xmlonload (success){
    if (
success) {//kein Fehler beim Laden aufgetreten
        
var knoten XPathAPI.selectNodeList(this.firstChild"/liste/item");
        var 
lg knoten.length;
        
trace("lg="+lg);//Output: lg=3
        
        
for(var i=0;i<lg;i++){//alle Knoten durchwandern...
            //trace("knoten["+i+"]="+knoten[i]);
            
var seite XPathAPI.selectNodeList(knoten[i], "/item/beschreibung");
            
trace("\nseite="+seite);
            
beschreibung seite[0].firstChild.nodeValue;
            
trace("beschreibung="+beschreibung);
            
            if(
beschreibung != undefinedmeineTextfeldinstanz.text beschreibung;//wenn ein Eintrag vorhanden ist, diesen einer Textfeldinstanz zuweisen
        
}
    }
    else {
        
trace("file.xml konnte nicht geladen werden.");
    }

  Mit Zitat antworten
Alt 18-04-2007, 11:03   #3 (permalink)
unomuse
 
Benutzerbild von muse
 
Registriert seit: Jan 2003
Ort: Im wunderschönen Hamburg
Beiträge: 117
Boah, vielen Dank. So wie's soll. Langsam verstehe ich das auch. Aber ist irgendwie schon echt umständlich, oder nicht?
__________________
Da kann ja jeder aus'm Wald kommen und sagen, dass er der Förster ist.
muse ist offline   Mit Zitat antworten
Alt 18-04-2007, 11:45   #4 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Zitat:
Aber ist irgendwie schon echt umständlich, oder nicht?
Ansichtssache...
  Mit Zitat antworten
Alt 18-04-2007, 12:00   #5 (permalink)
Standard User
 
Registriert seit: May 2006
Ort: Dresden
Beiträge: 230
Find's eigentlich relativ knapp und einfach.
Aber kann sein, dass es die XPathAPI erst ab Flash 8 gibt? Denn ich hab jetzt hier in meiner MX2004er Hilfe nix dazu gefunden?
__________________
zuerst den Flash-Debugger nutzen...
codontooom ist offline   Mit Zitat antworten
Alt 18-04-2007, 12:13   #6 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Zitat:
Aber kann sein, dass es die XPathAPI erst ab Flash 8 gibt?
Nein, die gibt es seit MX2004.
  Mit Zitat antworten
Alt 19-04-2007, 10:44   #7 (permalink)
Standard User
 
Registriert seit: May 2006
Ort: Dresden
Beiträge: 230
Hallo,

ich hab mich auch gleich mal von diesem XPath zum Testen hinreisen lassen, aber mit mäßigem Erfolg

XML:

Code:
<?xml version="1.0" encoding="utf-8"?>

<bilder>
	<pic id="1">
		<url> /bilder/bild1.jpg </url>
	</pic>
	<pic id="2">
		<url> /bilder/bild2.jpg </url>
	</pic>
	<pic id="3">
		<url> /bilder/bild3.jpg	</url>
	</pic>
	<pic id="4">
		<url> /bilder/bild4.jpg	</url>
	</pic>
</bilder>

und AS:

Code:
import mx.xpath.XPathAPI;

var p:Number = 0;
var picSize:Number;
var sizeGot:Number;
var total:Number;
picture.createEmptyMovieClip("picture",this.getNextHighestDepth);
preloader_mc._visible = false;



function xmlLaden(geladen){
	if(geladen){
		var xmlNode = XPathAPI.selectNodeList(this.firstChild, "/bilder/pic");
		total = xmlNode.length;
		for(var i:Number; i<total; i++){
				bilder[i] = XPathAPI.selectNodeList(xmlNode[i], "/pic/url");
		}
		erstesBild();
	}
	else{
		status_txt.text = "Fehler beim laden der Bilder!";
	}
}

file = "bilder.xml";
bilderXML = new XML();
bilderXML.ignoreWhite = true;
bilderXML.onLoad = xmlLaden;
bilderXML.load(file);

.
.
.
Das Problem ist, das die xmlNode.length undefined ist, aber warum


'ne idee?

EDIT:

das muss an dem XPath liegen, denn xmlNode = this.firstchild und total = xmlNode.childNodes.length
funktioniert. Sicher, dass das schon bei MX2004 dabei ist?
__________________
zuerst den Flash-Debugger nutzen...

Geändert von codontooom (19-04-2007 um 11:00 Uhr)
codontooom ist offline   Mit Zitat antworten
Alt 19-04-2007, 10:59   #8 (permalink)
Trennschleifer
 
Benutzerbild von bobo_k1
 
Registriert seit: Apr 2004
Ort: Hamburg
Beiträge: 1.282
wenn xpath, dann aber gleich die hier nehmen - ist viel mächtiger als die Standard -> http://www.xfactorstudio.com/
__________________
Es gibt nur zwei Arten von Menschen die Hawaiihemden tragen: Schwuchteln und dicke fette Partylöwen. Und du siehst nicht aus wie ein dicker fetter Partylöwe!" - Homer J. Simpson
bobo_k1 ist offline   Mit Zitat antworten
Alt 19-04-2007, 11:00   #9 (permalink)
Trennschleifer
 
Benutzerbild von bobo_k1
 
Registriert seit: Apr 2004
Ort: Hamburg
Beiträge: 1.282
und hier zum Lernen von XPATH http://www.w3schools.com/xpath/
__________________
Es gibt nur zwei Arten von Menschen die Hawaiihemden tragen: Schwuchteln und dicke fette Partylöwen. Und du siehst nicht aus wie ein dicker fetter Partylöwe!" - Homer J. Simpson
bobo_k1 ist offline   Mit Zitat antworten
Alt 19-04-2007, 11:08   #10 (permalink)
Standard User
 
Registriert seit: May 2006
Ort: Dresden
Beiträge: 230
Oh je... Ich muss mich entschuldigen! Ich hab vergessen in der for-Schleife dem i einen Wert zu geben
__________________
zuerst den Flash-Debugger nutzen...
codontooom 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 18:15 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele