ugrás a tartalomhoz

PHP -XML kódolási gond

figyuri · 2008. Már. 18. (K), 10.59
Sziasztok, - nagyon egyszerű a feladat, az eü.intézmények által szolgáltatott orvos adatokat kell beolvasnom XML file -ból. Az XML file így kezdődik :
  1. <?xml version="1.0" encoding="ISO-8859-2"?>  
  2. <obp verzio="2.02" oepkod="K017" idoszak="200802">  
  3.  <orvos kod="47558" nev="Dr. Ádám Lajos">  
  4.   <szakvizsga>  
  5.    <vizsga mokkod="49" megszerezve="1982.11.27" kezd="1982.11.27" veg="2008.02.29"/>  
  6.   </szakvizsga>  
A php beolvasom a lehető legegyszerűbben :
  1. $file = "pelda1.xml";  
  2. if (!($fp = fopen($file"r"))) {    die("could not open XML input"); }  
  3.   
  4. $parser = xml_parser_create();  
  5. while ($data = fread($fp, 4096)) {  
  6.   
  7. xml_parse_into_struct($parser$data$ertek$index);  
  8.   
  9. echo "\nertekek :\n";  
  10. print_r($ertek[1]);  
  11. print "<br>";  
  12. print_r($ertek[2]);  
  13. print "<br>";  
  14. print_r($ertek[3]);  
  15. print "<br>";  
Apró kicsi gondom, hogy az ékezeteket nem tudtam kezelni :

ertekek : Array ( [tag] => ORVOS [type] => open [level] => 2 [attributes] => Array ( [KOD] => 47558 [NEV] => Dr. Ádám Lajos ) [value] => )
Array ( [tag] => SZAKVIZSGA [type] => open [level] => 3 [value] => )


Biztos valami nagyon egyszerű a megoldás, én az iconv -al, header -el próbálkoztam sikertelenül...

Köszönöm : -gyuri-
 
1

a dokumentáció olvasása segít

gex · 2008. Már. 18. (K), 12.11
ha rosszak az ékezetek vajon mivel lehet gond? csak nem a karakterkódolással? ha megnézted volna a dokumentációt, megtaláltad volna te is, hogy az xml_parser_create függvénynek van egy encoding paramétere. amint azt helyesen beállítod, valószínűleg menni fog.

ránézésre utf-8-cal próbálkozz.

szerk: remélem nem valós adatokat másoltál be ide. tudod, személyiségi jogok.

szerk: öhhmmm... most, hogy van kódszínezés (eddig nem volt), egyből látszik, hogy iso-8859-2 a kódolás. :)