Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][XML]
Forum PHP.pl > Forum > Przedszkole
crea
Mam taki plik:

  1. <?xml version="1.0"?>
  2. <player name="Beginner" account="1" voc="1" level="1797" access="5" banned="0">
  3. <spawn x="127" y="160" z="7"/>
  4. <temple x="307" y="245" z="7"/>
  5. <skull type="0" kills="0" ticks="0" absolve="0"/>
  6. <health now="7742" max="7742" food="1000"/>
  7. <mana now="37938" max="38010" spent="1471680"/>
  8. <ban banned="0" banstart="0" banend="0" comment="" reason="" action="" deleted="0" finalwarning="0" banrealtime=""/>
  9.  
  10. <skills>
  11. <skill skillid="0" level="20" tries="513"/>
  12. <skill skillid="1" level="15" tries="10"/>
  13. <skill skillid="2" level="15" tries="10"/>
  14. <skill skillid="3" level="17" tries="1850"/>
  15. <skill skillid="4" level="15" tries="10"/>
  16. <skill skillid="5" level="15" tries="10"/>
  17. <skill skillid="6" level="15" tries="10"/>
  18. </skills>
  19.  
  20. <inventory>
  21. <slot slotid="2">
  22. <item id="2173"/>
  23. </slot>
  24.  
  25. <slot slotid="7">
  26. <item id="2507"/>
  27. </slot>
  28.  
  29. <slot slotid="8">
  30. <item id="2643"/>
  31. </slot>
  32. </inventory>
  33.  
  34. </player>


Jeśli chcę sprawdzic czy wartosc 'health max' jest rowna 2000 to wpisuję:

  1. <?php
  2. if(isset($player-> data ->health['max']==2000)){...
  3. ?>


Co muszę wpisać by wywołać ' slot slotid="2" i w tym item id="2173" ' ?

Probowalem juz wpisac
  1. <?php
  2. if(isset($player-> data ->inventory->(slot['slotid']==2)->(item['id']==2173))){...
  3. ?>

ale to jednak nie pomogło

Proszę o pomoc, jak mam to wywołac?
erix
  1. <?php
  2. $o = $player->xpath('/players/skills/skill[skillid=3]');
  3. ?>

?
athei
W simplexml będzie coś takiego:
  1. <?php
  2. $xml = simplexml_load_file('plik.xml') or die ("Unable to load XML!");
  3. echo  $xml->inventory->slot[0]['slotid']; //2
  4. echo  $xml->inventory->slot[0]->item['id']; //2137
  5. ?>
crea
@athei: zrobilem cos takiego i juz prawie jest ok, tylko problem w tym ze jesli za "a" podstawie 2 czy 3 to i tak czyta z pliku tą wartosc b. Ciezko mi to wytlumaczyc, ale chodzi mi o to, ze zwracanie na "tak" powinno byc tylko wtedy gdy "$b=2137" znajduje sie w slotid=2, gdy slotid=3 to juz ma nie czytac tej wartosci $b. Dzieki za pomoc

  1. <?php
  2. $a = $player->data->inventory->slot[0]['slotid']; //2
  3.                $b = $player->data->inventory->slot[0]->item['id']; //2137
  4.                    
  5.                    if(($a=2)&&($b=2137)){
  6.                    echo 'Dziala';
  7.                    }
  8.                    else
  9.                    {
  10.                    echo 'Nie dziala';  
  11.                    }
  12. ?>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.