2012-09-03 8 views
0

XML Exemple:données xml analyse syntaxique

<liste> 
<okul>kod="1" durumid="6" genelid="11702" adi="istanbul lisesi"/> 
<puan>genelpuan"2" sosyalpuan="0" matpuan="3"/> 
<okul>kod="6" durumid="8" genelid="11345" adi="ankara lisesi"/> 
<puan>genelpuan"4" sosyalpuan="5" matpuan="2"/> 
</liste> 

Je veux le résultat:

genelid-adi-genelpuan-sosyalpuan 
sample 
11702 - istanbul lisesi - 2 - 0 
11345 - ankara lisesi - 4 - 5 

Mon code:

function getirbilgileri{ 
    $ch = curl("http://www.sample.com"); 
    $xml = simplexml_load_string($ch); 
    $tarih = (string)$xml->attributes()->saat; 
    $i = 0; 
    $ids = cols(get('biten'),'genelid'); 
    foreach($xml->Okul as $okul) { 
    $x = getarray($okul->attributes())+compact('tarih'); 
    $puanlar[$i++] = (string)$x['genelid']; 
    if (in_array($x['genelid'],$ids)) continue; 
    insert('biten',parsequery($)); 
    } 

    $i = 0; 
    foreach($xml->puan as $puan) { 
    $x = parsequery($puan->attributes()); 
    $i++; 
    if (in_array($x['genelid'],$ids)) continue; 
    update('biten',$x,"genelid='{$puan[$i-1]}'",1); 
    } 
} 

Le problème est dans la ligne:

if (in_array($x['genelid'],$ids)) continue; 

Parce que genelid n'est pas dans le tableau. Des idées?

foreach($biten as $bitenler) 
{ 
    echo ' 
    <div class="okullar left">'.$bitenler->adi.'</div> // **this is ok** 
    <div class="puanlar fpuan">'.$bitenler->sosyalpuan.'</div>'; // **this is incorrect** 
} 
+2

Votre syntaxe XML n'est pas valide. –

+0

Est-ce que '$ ch' est effectivement le contenu retourné, ou encore un handle de boucle? Imprimez-le avant de convertir. Vous devriez également mettre votre code en retrait. – mario

+0

xml est seulement l'échantillon vous pouvez voir la structure du XML – mrsilver

Répondre

0

Votre xml devrait ressembler

<liste> 
<okul kod="1" durumid="6" genelid="11702" adi="istanbul lisesi"/> 
<puan genelpuan"2" sosyalpuan="0" matpuan="3"/> 
<okul kod="6" durumid="8" genelid="11345" adi="ankara lisesi"/> 
<puan genelpuan"4" sosyalpuan="5" matpuan="2"/> 
</liste> 

peut-être.

Le traitement de ce que vous avez en tant que xml si vous voulez accéder au contenu des nœuds okul et puan est pire que inutile.