| Autor | Zpráva | ||
|---|---|---|---|
| Anonymní Profil * |
#1 · Zasláno: 17. 5. 2006, 13:07:45
Poradíte mi jak můžu správně načíst XML?
Používám SAX, tj. $parser=xml_parser_create("UTF-8"); xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, true); xml_set_element_handler($parser, "startElement", "endElement"); xml_set_character_data_handler($parser, "characterData"); ... A potřebuji načíst obsah elementu, obsahující HTML značky, překodovane do entit. <p> odstavec... </p> Ale nevim z jakeho duvodu mi parser vraci pouze obsah od posledniho znaku &; do konce XML znacky? function endElement($parser, $name) { global $znaky; switch ($name) { case "HTML: echo $znaky; $znaky=""; break; ... Díky. |
||
|
Časová prodleva: 5 dní
|
|||
| Anonymní Profil * |
#2 · Zasláno: 22. 5. 2006, 19:25:41
Tak už jsem to vyřešil...problém byl handleru pro zpracování znaků
xml_set_character_data_handler($parser, "characterData"); původně jsem měl: function characterData($parser, $data) { global $znaky; if (trim($data)!="") { $znaky = $data; } } a po experimentování jsem zjistil že se tento handler zřejmě volá vícekrát, pokud v obsahu narazí na nějakou entitu, tudíž se mi přemazával obsah proměnné $znaky. úprava jednoduchá: function characterData($parser, $data) { global $znaky; if (trim($data)!="") { $znaky .= $data; } } a pak nastavovat $znaky="" při rozpoznání počátečních značek. |
||
|
Časová prodleva: 20 let
|
|||
Toto téma je uzamčeno. Odpověď nelze zaslat.
0