Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: SimpleXML i spacja jako wartosc
Forum PHP.pl > Forum > PHP
menic
Dzis zupełnie przez przypadek zauwazyłem dziwna rzecz. Parser simplexml w momencie gdy napotka wartosc ktora jest spacja tworzy tablice o jednym kluczu i wartosci jaką jest spacja? IMO to nie jest normalna rzecz. Bug?

Nikt czegoś takiego nie zauwazył?
cicik
Nie wiem czy o to Ci chodzi ale ja zauważyłem, że simplexml przerywa parsowanie wartości w momencie napotkania spacji lub ;polskich znaków (innych pewnie też). Wtedy wywoływana jest funkcja ustawiona przez xml_set_character_data_handler, do której jako parametr przekazywana jest do tej pory odczytana wartość.
Gdy parser odczyta dalszą część wartości to znów wywoływany jest handler, tym razem jako parametr przekazywana jest dalsza część odczytanej wartości.

Rozwiązanie jest takie, że w funkcji ustawionej przez xml_set_character_data_handler trzeba doklejać wartość otrzymywaną przez parametr a nie nadpisywać.

  1. <?php
  2. private function UchwytDane($xml, $dane) {
  3. $dane_odczytane .= $dane;
  4. }
  5. ?>


zamiast

  1. <?php
  2. private function UchwytDane($xml, $dane) {
  3. $dane_odczytane = $dane;
  4. }
  5. ?>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.