kostenloser Webspace werbefrei: lima-city


XML durchsuchen

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    fabo

    fabo hat kostenlosen Webspace.

    Hiho,

    auch ich weiß mal nicht weiter. Jetzt ist so ein Augenblick und ich stehe vor einem Rätsel :(

    Aaaaaalso...

    Die Aufgabe ist relativ einfach (erklärt):

    Ich muss eine Möglichkeit finden, aus diesem XML-Sheet die ID einer Zeile heraus zu finden.

    Es geht dabei um diese Zeile:

    <animation default="1" id="0" key="stand" panx="0.1904762" pany="0.0952381" rot="-25.5" subId="0" timer="387" weapons="melee" zoom="0.0" />


    Der Schlüssel "default" mit dem Wert 1 ist, nach dem gesucht werden muss. Da der Schlüssel aber immer woanders sein kann, muss ich also "animations" nach default="1" durchsuchen und aus der entsprechenden Zeile die id filtern.

    Mein Grundgedanke war, das Ganze erst einmal nur auf animations zu reduzieren und in ein normales Array zu bringen. Da kommt aber nur Murks raus und hilft mir im Prinzip nicht weiter.

    Nun... Wer kennt des Rätsels Lösung?

    ------

    Ich habe es bereits so versucht:

    function search($array, $key, $value) 
    { 
        $results = array(); 
     
        if (is_array($array)) 
        { 
            if ($array[$key] == $value)
                $results[] = $array; 
     
            foreach ($array as $subarray) 
                $results = array_merge($results, search($subarray, $key, $value)); 
        } 
     
        return $results; 
    }
    
    // ...
    
    $id = search($array, "default" "1");


    Klappen tut das, theoretisch. Praktisch ist das aber Humbug und ergibt den Fehler "Undefined index: default", was ich wiederrum vermeiden muss/möchte.

    EDIT:

    Ich hab mir überlegt, dass ein simples explode reichen dürfte :-D

    Beitrag zuletzt geändert: 18.11.2010 9:36:16 von fabo
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. t*****b

    Benutze doch einfach die XML-Funktionen von PHP. Damit kannst du die Daten per Schleife durchgehen und brauchst dann nur noch überprüfen, ob das Attribute "default" auf 1 ist. Was du mit explode vor hast, ist ein eigener Parser, aber warum umständlich wenns auch einfach geht ;)
  4. Nutze XPath über SimpleXML um eine Suche danach zu machen:
    //animation[@default='2']@id


    XPath war noch nie meine Stärke, aber ich glaube das sollte funktionieren.
  5. Autor dieses Themas

    fabo

    fabo hat kostenlosen Webspace.

    trueweb schrieb:
    Benutze doch einfach die XML-Funktionen von PHP. Damit kannst du die Daten per Schleife durchgehen und brauchst dann nur noch überprüfen, ob das Attribute "default" auf 1 ist. Was du mit explode vor hast, ist ein eigener Parser, aber warum umständlich wenns auch einfach geht ;)


    Du hast den Sheet nicht gesehen ;) Schön, wenn es so einfach wär :-/
  6. fabo schrieb: Du hast den Sheet nicht gesehen ;) Schön, wenn es so einfach wär :-/

    Ich bekomm ein 404 wenn ich auf den Link klicke ;)
  7. Autor dieses Themas

    fabo

    fabo hat kostenlosen Webspace.

    Ich weiß ^^ Hab ich direkt weggehauen, als ich auf explode kam :D

    Ist aber wieder oben :D
  8. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!