Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> SimpleXML i spacja jako wartosc
menic
post
Post #1





Grupa: Zarejestrowani
Postów: 493
Pomógł: 0
Dołączył: 14.06.2003
Skąd: Tomaszów Lubelski/Rzeszów

Ostrzeżenie: (0%)
-----


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ł?


--------------------
Jak masz cos zrobic dobrze...
...To musisz zrobić to sam.

Uchwycić moment...
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 1)
cicik
post
Post #2





Grupa: Zarejestrowani
Postów: 219
Pomógł: 5
Dołączył: 18.07.2006
Skąd: Piekary Śląskie

Ostrzeżenie: (0%)
-----


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. ?>


--------------------
CMS dla Twojej firmy
Wojciech Małota
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 00:50