Zurück   Flashforum > Flash und Server > Flash mit XML und Webservices

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 13-03-2008, 10:42   #1 (permalink)
Neuer User
 
Registriert seit: Aug 2006
Beiträge: 54
Question 2 XML Dateien zusammenführen

howdy

ich habe für eine Anwendung XML Daten welche aus einer Datenbank kommen. Diese enthält jedoch noch nicht alle DAten. In einer weiteren config.xml liegt statisch der REst.

generisch:
HTML-Code:
<sitze>
 <person id="1" />
 <person id="2" />
</sitze>
und


statisch
HTML-Code:
<sitze>
 <person id="3" />
</sitze>
soll zu

HTML-Code:
<sitze>
 <person id="1" />
 <person id="2" />
 <person id="3" />
</sitze>
werden.


Nun habe ich versucht per

PHP-Code:
var XMLdatenbank = new XML();
XMLdatenbank.ignoreWhite=true

XMLdatenbank.load(whatxml);
XMLdatenbank.onLoad = function(success) {    
    if (
success) {
        
trace("XMLdatenbank= "+XMLdatenbank);
        
trace("-----------------------------------------------------------------");
    }
}

var 
XMLconfig = new XML();
XMLconfig.ignoreWhite=true

XMLconfig.load(configxml);
XMLconfig.onLoad = function(success) {    
    if (
success) {
        
trace("XMLconfig= "+XMLconfig);
        
trace("-----------------------------------------------------------------");
    }
}


var 
XMLdaten = new XML();
XMLdaten.ignoreWhite=true

XMLdaten XMLdatenbank.parseXML(XMLconfig);
XMLdaten.status;

// XMLdaten = XMLdatenbank + XMLconfig

trace("XMLdaten: "+XMLdaten)
trace("-----------------------------------------------------------------"); 
die beiden XML zusammen zu führen. Ging nicht. XMLdaten ist undefined.
falk_webit ist offline   Mit Zitat antworten
Alt 13-03-2008, 11:43   #2 (permalink)
Euer Nuser
 
Benutzerbild von ~pyropete~
 
Registriert seit: Apr 2004
Ort: Sand-City
Beiträge: 3.483
Wo ist Deine parseXML() Funktion?

Die XML's lassen sich nur zusammenfügen, wenn Du in Flash daraus ein neues
XML-Objekt per XML Konstruktor ( mit appendChild() usw). Das Objekt kannst
Du dann mit der XML Socket an den Server schicken.

Aber wenn Du die Daten nur in Flash brauchst, dann reicht es auch aus alle
XML's auszulesen und in Arrays zu pushen...
~pyropete~ ist offline   Mit Zitat antworten
Alt 13-03-2008, 13:30   #3 (permalink)
Neuer User
 
Registriert seit: Aug 2006
Beiträge: 54
also ich hab jetzt folgende Funktion zum zusammenfügen.

PHP-Code:
var XMLconfig = new XML();
XMLconfig.ignoreWhite=true

XMLconfig.load(configxml);
XMLconfig.onLoad = function(success) {    
    if (
success) {
        
//trace("XMLconfig= "+XMLconfig);
        //trace("-----------------------------------------------------------------");
    
}
}


var 
XMLdaten = new XML();
XMLdaten.ignoreWhite=true

XMLdaten.load(whatxml);
XMLdaten.onLoad = function(success) {    
    if (
success) {
        for (
i=0;i<200;i++) {
            
                
node XMLconfig.firstChild.childNodes[i];  
                
XMLdaten.firstChild.appendChild(node);
                
trace(node);
                
        }
        
trace("XMLdaten= "+XMLdaten); 
scheinbar fügt er jetzt die XML so zusammen wie ich das will. NUR ... aus der config.xml wird lediglich jeder 2. eintrag gezogen
falk_webit ist offline   Mit Zitat antworten
Alt 13-03-2008, 13:54   #4 (permalink)
nobody is perfect
 
Benutzerbild von richtsteiger
 
Registriert seit: Jul 2004
Ort: munich
Beiträge: 876
Servus,

bei der Manipulation von XML-Daten mittels appendChild, insertBefore usw.
gibt es gerne mal Probleme, wenn die verschiedenen Nodes nicht richtig
miteinander verknüpft werden. Darum probier mal so:
PHP-Code:
        // du möchtest doch sicherlich nur die vorhandenen childNodes anhängen
        
var count:Number XMLconfig.firstChild.childNodes.length;
        for (
i=0;i<count;i++) {
                
// du musst hier noch firstChild explizit auswählen, da es sonst
                // nicht richtig verknüpft ist
                
node XMLconfig.firstChild.childNodes[i].firstChild;  
                
XMLdaten.firstChild.appendChild(node);
                
trace(node);
                
        } 
Das trace zeigt dir hier auch nichts anderes an als vorher, aber durch die
richtige Verknüpfung kannst du nun auch mittels den bekannten XML-
Methoden wie childNodes, firstChild usw. darauf zugreifen. Das kannst du
sonst nicht.

Ach ja, noch einen Hinweis. Du lädst zwei verschiedene Dateien und geht's
davon aus, dass diese auch in der angegebenen Reihenfolge geladen werden.
Was machst du nun, wenn deine Daten aus der Datenbank schon geladen
sind, die config.xml aber etwas länger braucht? Das würde ich schon noch
abfangen.
__________________
XING
richtsteiger ist offline   Mit Zitat antworten
Alt 13-03-2008, 14:13   #5 (permalink)
Neuer User
 
Registriert seit: Aug 2006
Beiträge: 54
nach dem
PHP-Code:
XMLconfig.firstChild.childNodes[i
habe ich gar keine weitere Schachtelung. die Kinder des ersten Knotens enthalten bereits die Attribute, die ich brauche.
PHP-Code:
node XMLconfig.firstChild.childNodes[i].firstChild
liefert null
falk_webit ist offline   Mit Zitat antworten
Alt 13-03-2008, 14:47   #6 (permalink)
nobody is perfect
 
Benutzerbild von richtsteiger
 
Registriert seit: Jul 2004
Ort: munich
Beiträge: 876
Zitat:
Zitat von falk_webit Beitrag anzeigen
nach dem
PHP-Code:
XMLconfig.firstChild.childNodes[i
habe ich gar keine weitere Schachtelung.
Sorry, mein Fehler. Das Zauberwort heißt cloneNode(true) anstatt firstChild.

Hab's mal zur Veranschaulichung nachgebaut. Siehe anbei. Habe hier auch
schon mal das unterschiedliche Ladeverhalten mit berücksichtigt.
Angehängte Dateien
Dateityp: zip mergeXML.zip (5,3 KB, 25x aufgerufen)
__________________
XING
richtsteiger 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 09:35 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele