webForumDet fria alternativet

XML parsing

XML

2 svar · 303 visningar · startad av FredrikMH

Medlem sedan maj 200430 inlägg
Frågan#1

Har letat ett tag nu men hittar inte eller så förstår jag inte... har inte kommit fram till vilket ännu :)

Men jag vill få ut värdena från en xml fil som ser ut i stil med detta:

<theme version="3.0">
<Background Color="0x003264" />
<Background_image Source="list background.gif" />

osv....

Jag vill loopa igenom dessa och ta ut de olika värderna och namnen. Så av <Background Color="0x003264" /> vill jag få ut 3 variabler som innehåller "Background", "Color" och "0x003264".

Det enda jag lyckats med är att få ut "Background" och har använt mig utav ett kod exempel:

<? 

$file = "xml.xml"; 

function contents($parser, $data){ 
    echo $data; 
} 

function startTag($parser, $data){ 
    echo "<b>$data</b><br />"; 
} 

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

$xml_parser = xml_parser_create(); 

xml_set_element_handler($xml_parser, "startTag", "endTag"); 

xml_set_character_data_handler($xml_parser, "contents"); 

$fp = fopen($file, "r"); 

$data = fread($fp, 80000); 

if(!(xml_parse($xml_parser, $data, feof($fp)))){ 
    die("Error on line " . xml_get_current_line_number($xml_parser)); 
} 

xml_parser_free($xml_parser); 

fclose($fp); 

?>

Så hur ska jag lyckas få ut de andra värderna? Har kollat igenom php-funktioner på php.net men inte hittat det jag söker.

Medlem sedan juli 20013 378 inlägg
#2

Hmm...

Hanteringsfunktionerna startTag och endTag kan deklareras till att ta fler argument...
Klämmer du dit ett tredje som du t.ex. döper till attribs så hamnar en vektor med attributen och deras värden där - vilket med största sannolikhet löser ditt problem ;)

Här är en tråd där utläsning av attribut används ganska friskt i den slutliga lösningen:
http://www.webforum.nu/showthread.php?s=&forumid=21&threadid=50137
XML:en som diskuteras (länk i första inlägget i tråden) ligger tydligen fortfarande uppe, så du borde kunna klura ut hur du får tag på attributen och deras värden ur koden och XML-strukturen ;)

Medlem sedan maj 200430 inlägg
#3

Jepp jag hittade det precis när jag gick igenom funktionerna på php.net igen. Så det har löst sig nu. Tack så mycket ändå.

257 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)