Autor Zpráva
Dragonw
Profil
Dobrý den mám problém s přečtením datových hodnot ze souboru xml.

XML soubor má následující obsah
<TrackVenue>F1WCP1997</TrackVenue> 
<TrackCourse>San Marino, Imola 1994</TrackCourse> 
<TrackEvent>Imola, GP San Marino</TrackEvent> 
<TrackLength>4929.4</TrackLength> 
<GameVersion>1.255</GameVersion> 


Vytvořil jsem čtecí funkci, ale ta mě vypíše všechny data na který narazí mezi jakýmikoliv elementy.

$parser=xml_parser_create();
xml_set_character_data_handler ($parser, "znaky");
xml_set_element_handler ($parser, "PocatecniZnacka", "KoncovaZnacka");

if (!($obsahsouboru = fopen($url_souboru, "r")))
    die("Nemohu otevřít XML pro čtení.");

while ($data = fread($obsahsouboru, 2))
    xml_parse($parser, $data, feof($obsahsouboru));

function PocatecniZnacka ($parser, $nazev, $atributy){}

function znaky ($parser, $data)
{echo "$data";}

function KoncovaZnacka ($parser, $nazev) {}
xml_parser_free($parser);



Za boha nemůžu přijít na to, jak by šlo vypsat jen jednotlivou část mezi přesnými elementy.
Např.: že chci vypsat jenom F1WCP1997 , která se nachází mezi elementy(tagy) TrackVenue (v xml <TrackVenue></TrackVenue>).
S pozdravem
Dragon
panhuhu
Profil
SimpleXML si zkousel? Podle meho nazoru idealni reseni.
Dragonw
Profil
Zloušel jsem aji DOC čtení souborů, ale kvůli složitosti jsem to vzdal. Siml jsem pořád přehlížel a nakonec se podařilo, tudiž ti musim poděkovat za připomínku.

Nakonec je to aji jednodušší a kratší řešení než to nad čím jsem celou dobu doumal, takže mi to už funguje.
Stačilo jen tohle.
$xml=simplexml_load_file("soubor.xml");

echo $xml->ELEMENT->TrackVenue;


A obsah F1WCP1997 se mi vypsal.

Díky a kdyžtak můžete lock.
mckay
Profil
Dragonw:
Díky a kdyžtak můžete lock
Jestli tím lock, myslíš zamknout, můžeš to udělat i sám.
Toto téma je uzamčeno. Odpověď nelze zaslat.

0