tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
2
ZUGRIFFE
669
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Primus852 Primus852 ist offline Mitglied Silber
    Registriert seit
    Feb 2005
    Beiträge
    51
    Hallö,

    zuerst einmal, ja es gibt schon einen solchen Post mit fast dem gleichen Titel, aber da wird mir leider nicht geholfen:

    Ich habe folgende XML Datei;

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    
      <characterInfo>
        <characterTab>
    <character class="Hexer" name="Primus">
          <items>
            <item durability="17" gem0Id="25897" gem1Id="32210" gem2Id="0" icon="inv_helmet_103" id="31051" maxDurability="60" permanentenchant="3002" randomPropertiesId="0" seed="0" slot="0"/>
            <item durability="0" gem0Id="0" gem1Id="0" gem2Id="0" icon="inv_jewelry_necklace_29naxxramas" id="28762" maxDurability="0" permanentenchant="0" randomPropertiesId="0" seed="2142963485" slot="1"/>
            <item durability="18" gem0Id="0" gem1Id="0" gem2Id="0" icon="inv_shoulder_02" id="32338" maxDurability="60" permanentenchant="2982" randomPropertiesId="0" seed="0" slot="2"/>
            <item durability="0" gem0Id="0" gem1Id="0" gem2Id="0" icon="inv_shirt_black_01" id="4336" maxDurability="0" permanentenchant="0" randomPropertiesId="0" seed="482354002" slot="3"/>
            <item durability="33" gem0Id="32206" gem1Id="0" gem2Id="0" icon="inv_chest_cloth_43" id="34936" maxDurability="100" permanentenchant="2661" randomPropertiesId="0" seed="0" slot="4"/>
            <item durability="16" gem0Id="32221" gem1Id="32210" gem2Id="0" icon="inv_belt_13" id="30038" maxDurability="35" permanentenchant="0" randomPropertiesId="0" seed="46065610" slot="5"/>
            <item durability="29" gem0Id="32206" gem1Id="0" gem2Id="0" icon="inv_pants_cloth_29" id="31053" maxDurability="75" permanentenchant="2746" randomPropertiesId="0" seed="0" slot="6"/>
            <item durability="17" gem0Id="32196" gem1Id="32207" gem2Id="0" icon="inv_boots_cloth_05" id="28517" maxDurability="50" permanentenchant="2649" randomPropertiesId="0" seed="621743632" slot="7"/>
            <item durability="16" gem0Id="32207" gem1Id="0" gem2Id="0" icon="inv_bracer_13" id="33285" maxDurability="35" permanentenchant="369" randomPropertiesId="0" seed="1267063988" slot="8"/>
            <item durability="9" gem0Id="32210" gem1Id="0" gem2Id="0" icon="inv_gauntlets_66" id="31050" maxDurability="35" permanentenchant="2935" randomPropertiesId="0" seed="0" slot="9"/>
            <item durability="0" gem0Id="0" gem1Id="0" gem2Id="0" icon="inv_jewelry_ring_56" id="29367" maxDurability="0" permanentenchant="2928" randomPropertiesId="0" seed="0" slot="10"/>
            <item durability="0" gem0Id="0" gem1Id="0" gem2Id="0" icon="inv_jewelry_ring_62" id="29287" maxDurability="0" permanentenchant="2928" randomPropertiesId="0" seed="1972991138" slot="11"/>
            <item durability="0" gem0Id="0" gem1Id="0" gem2Id="0" icon="ability_rogue_sinistercalling" id="34162" maxDurability="0" permanentenchant="0" randomPropertiesId="0" seed="0" slot="12"/>
            <item durability="0" gem0Id="0" gem1Id="0" gem2Id="0" icon="inv_misc_head_troll_01" id="33829" maxDurability="0" permanentenchant="0" randomPropertiesId="0" seed="584815660" slot="13"/>
            <item durability="0" gem0Id="0" gem1Id="0" gem2Id="0" icon="inv_misc_cape_20" id="33304" maxDurability="0" permanentenchant="2621" randomPropertiesId="0" seed="0" slot="14"/>
            <item durability="33" gem0Id="0" gem1Id="0" gem2Id="0" icon="inv_weapon_shortblade_64" id="33354" maxDurability="75" permanentenchant="2669" randomPropertiesId="0" seed="1806397994" slot="15"/>
            <item durability="0" gem0Id="0" gem1Id="0" gem2Id="0" icon="inv_offhand_hyjal_d_01" id="30872" maxDurability="0" permanentenchant="0" randomPropertiesId="0" seed="1879533030" slot="16"/>
            <item durability="33" gem0Id="32205" gem1Id="0" gem2Id="0" icon="inv_wand_25" id="34347" maxDurability="75" permanentenchant="0" randomPropertiesId="0" seed="1811327094" slot="17"/>
            <item durability="0" gem0Id="0" gem1Id="0" gem2Id="0" icon="inv_shirt_15" id="31404" maxDurability="0" permanentenchant="0" randomPropertiesId="0" seed="481341951" slot="18"/>
          </items>
        </characterTab>
      </characterInfo>

    Diese lese ich mit SimpleXML aus. So weit so gut, ich kann den Namen mit
    Code :
    1
    
    echo $xml->characterInfo->character['name']

    ganz einfach auslesen.

    Jetzt möchte ich aber alle

    Code :
    1
    
    $xml->characterInfo->characterTab->items->item['id']

    auslesen und da wirds schwierig, da ich immer nur das erste bekomme. Leider habe ich wie gesagt nur ein Post dazu gefunden, der schlägt (unzureichend) nur das vor:

    Code :
    1
    2
    3
    
    foreach( [FONT=Courier New][SIZE=2][FONT=Courier New][SIZE=2]$xml->characterInfo->characterTab->items->item[/SIZE][/FONT][/SIZE][/FONT] as $item ) {
    echo htmlspecialchars($item). '<br>';
    }

    Das funktioniert aber nicht, ich bekomme Leerzeilen, genau in der Anzahl, wie <item> tags vorhanden sind.

    Steh ich völlig auf dem Schlauch, oder ist das unmöglich?

    Für jeden Denkanstoß bin ich dankbar.

    LG

    PrimuS
     

  2. #2
    Avatar von EvilO
    EvilO EvilO ist offline Mitglied Gold
    Registriert seit
    Feb 2004
    Ort
    Wuppertal (NRW)
    Beiträge
    172
    Hi, was du dort machst kann schon allein desshalb nicht funktionieren, weil du 1. eine fehlerhafte XML Datei hast und 2. die Daten der Datei falsch ansprichst.

    zu 1: Das Element <character> muss entweder als inhaltsleer gekennzeichnet werden, also <character/> oder an der passenden Stelle ein Endelement eingefügt werden, also </character>. Ausserdem fehlt am Anfang deiner Datei eine XML-Deklaration, die folgendermassen aussehen muss:
    Code :
    1
    
    <?xml version="1.0" encoding="UTF-8" ?>
    Bei encoding natürlich dann entsprechend die richtige Kodierung angeben. Falls sie UTF-8 ist, kann man das encoding Attribut auch einfach weglassen.

    zu 2: Ein wenig mehr grundsätzliches Verständnis von XML und DOM, bzw. mal ein Blick in die SimleXML Dokumentation offenbahrt, dass man den Wurzelknoten des XML-Baums (in deinem Fall ist das <charachterInfo>) nicht mit angeben muss, wenn man auf Elemente zugreift. Hier mal ein kleines Beispiel, wie man an das Icon für jedes Item kommt:
    PHP-Code:
    foreach( $xml->characterTab->items->item as $item )
    {
      echo 
    htmlspecialchars($item['icon']) . '<br />';

    Ich hoffe, das hilft weiter, und empfehle dir, mal die Beispiele von php.net genau anzuschauen, die sind recht gut und dürften die meisten Fragen beantworten.
     
    "Die Deutsche Rechtschreibung ist Freeware, dass heisst jeder kann sie benutzen wann er will, ohne dafür zu zahlen. Sie ist aber nicht Open Source, also darf sie ohne Zustimmung der Entwickler nicht verändert und weiterverbreitet werden."

  3. #3
    Primus852 Primus852 ist offline Mitglied Silber
    Registriert seit
    Feb 2005
    Beiträge
    51
    vielen Dank, das hat mir sehr weitergeholfen, allerdings funktionierte es nicht 100%, ich habe es jetzt so:

    Code :
    1
    2
    3
    4
    
    foreach( $xml->characterInfo->characterTab->items->item as $item )
    {
     echo htmlspecialchars($item['id']). "<br \>";
    }
    Ich musste <characterInfo> mit reinnehmen, sonst gab's 'nen Error?!

    Traumhaft, da werden Sie geholfen!

    thx bb

    PrimuS
     

Ähnliche Themen

  1. simplexml tags kopieren
    Von Sixty im Forum PHP
    Antworten: 3
    Letzter Beitrag: 10.06.10, 12:29
  2. Antworten: 11
    Letzter Beitrag: 04.09.09, 17:36
  3. XML einlesen mit SimpleXML
    Von mcready im Forum PHP
    Antworten: 2
    Letzter Beitrag: 19.01.09, 16:16
  4. Antworten: 2
    Letzter Beitrag: 01.04.08, 13:00
  5. [flash5] xml mit html-tags einlesen
    Von AleX im Forum Flash Plattform
    Antworten: 2
    Letzter Beitrag: 21.07.03, 12:05