Ankündigung

Einklappen
Keine Ankündigung bisher.

XML Array verarbeiten

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • XML Array verarbeiten

    Hallo Leute,

    ich brauche mal ein wenig Hilfe:

    Ich habe gerade ein kleines Projekt, bei dem ich aus einer XML-File Informationen auslese.

    Dies geschieht per:

    PHP-Code:
    $p xml_parser_create();
    xml_parse_into_struct($p$source$char_info$info);
    xml_parser_free($p);

    return 
    $char_info
    nun habe ich in $char_info ein array mit allen Inforrmationen stehen.
    Das ist auch gar kein Problem, auser die XML-Datei ist "tiefer" verschachtelt als 1 Ebene.

    BSP XML:
    Code:
    <gender>Female</gender>
    BSP Array:
    Code:
     [12] => Array ( [tag] => GENDER [type] => complete [level] => 3 [value] => Female)
    (wo die zusätzlichen Informationen her kommen weis ich nicht ^^)

    Darauf kann ich mit $char_info[12][value] zugreifen.

    Doch später kommt so etwas hier:

    Code:
    <rowset name="skills" key="typeID" columns="typeID,skillpoints,level,unpublished">       <row typeID="3431" skillpoints="8000" level="3"/>       <row typeID="3413" skillpoints="8000" level="3"/>       <row typeID="21059" skillpoints="500" level="1"/>       <row typeID="3416" skillpoints="8000" level="3"/>       <row typeID="3445" skillpoints="277578" unpublished="1"/>     </rowset>
    Was dann geparst so aussieht im array:
    Code:
        [47] => Array ( [tag] => ROWSET [type] => open [level] => 3 [attributes] => Array ( [NAME] => skills [KEY] => typeID [COLUMNS] => typeID,skillpoints,level,unpublished ) [value] => ) [48] => Array         ( [tag] => ROW [type] => complete [level] => 4 [attributes] => Array ( [TYPEID] => 3410 [SKILLPOINTS] => 445234 [LEVEL] => 4 ) ) [49] => Array ( [tag] => ROWSET [value] => [type] => cdata [level] => 3         ) [50] => Array ( [tag] => ROW [type] => complete [level] => 4 [attributes] => Array ( [TYPEID] => 26261 [SKILLPOINTS] => 750 [LEVEL] => 1 ) ) 
    USW...
    Hier möchte ich gern die Werte unter [SKILLPOINTS] addieren.
    Wie stell ich das am besten an? das Problem für mich ist, dass der XML Parser
    für jeden Abschnitt ein neues Feld im Array anlegt anstatt es
    untergeordnet von [47] anzuordnen.

    Ich bin mir bewusst, dass das ein sehr spezielles Problem ist,
    aber vllt hat ja jemand mal genug Zeit / Lust es sich durch den Kopf gehen zu lassen =)

    Danke im Vorraus

    mfg Ind3X

  • #2
    Hi,

    Also wenn ich das richtig sehe muesstest du an die Skillpoints per $char_info[48][attributes][skillpoints] kommen, allerdings haben nicht alle den eintrag skillpoints unter attributes diese muesstest du dann vorher aussortieren und ich denke es ist besser vor der array augabe ein <pre> zu setzen, da solcherart arrays sonst extrem schwer zu lesen sind, es bewirkt nur dass zeilenumbrueche korrekt gemacht werden wenn ein array per print_f ausgegeben wird!

    Mfg
    Thorus
    http://rottmann-moebel.de/

    Kommentar

    Lädt...
    X