Autor Zpráva
Parser
Profil *
Vytvoril jsem skript, ktery "přepisuje" XML soubor do pole. Všechno funguje jak má, až na diakritiku. Neboť pokud se například mezi tagama <KRAJ>Hlavní město praha</KRAJ> nachází nějaký řetězec, který obsahuje délku (tady konkrétně "í" ), tak se do pole uloží pouze řetězec s první délkou a tím co za ní následuje ( í město Praha ), neví někdo, čím by to mohlo být?
djlj
Profil
Pomocí jakých funkcí to XML parsuješ?
Parser
Profil *
djlj


xml_parser_create()
xml_set_element_handler
xml_set_character_data_handler

samozrejme tam jsou definovany obsluhy poc. tagu, koncoveho tagy a elementu


/**
* Obslouzit pocatecni tag
*/
private function firstTag($parser, $name, $atributes) {

$this->param = $name;

}

/**
* Obslouzit obsah
*/
private function inside($parser, $data) {

$this->data[$this->param] = $data;

}
djlj
Profil
No a v jakým kódování je zdrojovej soubor?

In PHP 5.0.0 and 5.0.1, the default output charset is ISO-8859-1, while in PHP 5.0.2 and upper is UTF-8. The supported encodings are ISO-8859-1, UTF-8 and US-ASCII.
Parser
Profil *
djlj
utf-8
Parser
Profil *
Tak jsem to vyresil.
Ve funkci na obslouzeni dat (public function inside() ) jsem napsal tohle


$this->data[$this->param] .= $data;


Tzn. misto "=" jsem dal ".=", ale nechapu jaky je tady v tom rozdil???
Je v tomhleto sneru nekdo moudrejsi?
Toto téma je uzamčeno. Odpověď nelze zaslat.