mam nastepujacy problem. Parsuje plik XML (oferta ksiegarni) w php i wszystko gra, dopoki w ktoryms ze znacznikow nie ma cudzyslowu (tutaj w tytule):
Kod
<book nr="42319">
<tytul>Telewizja i jej gatunki po "Wielkim Bracie"</tytul>
<autor>Wiesław Godzic</autor>
<cena>32.00</cena>
</book>
<tytul>Telewizja i jej gatunki po "Wielkim Bracie"</tytul>
<autor>Wiesław Godzic</autor>
<cena>32.00</cena>
</book>
wtedy na stronie php zamiast tytulu pojawia sie tylko cudzyslow i nic wiecej.
probowalem funkcji str_replace, htmlspecialchars, htmlentities, ale nic z tego.
sam parser wyglada tak:
<?php $book_counter = 0; $xml_current_tag_state = ''; function startElementHandler($parser, $element_name, $element_attribs) { if($element_name == "BOOK") {$book_data[$book_counter]["nr"] = $element_attribs["NR"];} else {$xml_current_tag_state = $element_name;} } function endElementHandler($parser, $element_name) { $xml_current_tag_state = ''; if($element_name == "BOOK") { $book_counter++; } } function characterDataHandler($parser, $data) { if($xml_current_tag_state == '') retrurn; if($xml_current_tag_state == "TYTUL") { $book_data[$book_counter]["tytul"] = $data; } if($xml_current_tag_state == "AUTOR") { $book_data[$book_counter]["autor"] = $data; } if($xml_current_tag_state == "CENA") { $book_data[$book_counter]["cena"] = $data; } } xml_set_element_handler($xml_parser, "startElementHandler", "endElementHandler"); xml_set_character_data_handler($xml_parser, "characterDataHandler"); { { break; } } xml_parser_free($xml_parser); ?>
moze jakis dobry czlowiek bedzie w stanie pomoc :-)