![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 68 Pomógł: 0 Dołączył: 22.07.2007 Ostrzeżenie: (0%) ![]() ![]() |
witam
mam problem w jaki sposob z uzyciem konstrukcji try catch napisac skrypt ktory w razie napotkania bledu podczas parsowania xmlreaderem nie bedzie sie wywalal tylko pominie mi tego blednego xml'a (bo jest ich kilka tys.) na razie mam konstrukcje w stylu
nie mniej jednak mimo wszystko przy blednym xml'u z jakim mam doczynienia dostaje i tak komunikat XMLReader::read() [function.XMLReader-read]: input conversion failed due to input error, bytes 0x81 0x4F 0xC5 0xBB czy ja cos robie zle? moze w jakis inny sposob nalezy oblsuzyc taki wyjatek moze w jakis inny sposob mozna wczesniej sprawdzic poprawnosc xml'a zeby ominac ten blad wziasc sie za kolejny plik z gory dzieki za wszelkie podpowiedzi pozdrawiam |
|
|
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
Bo to jest błąd a nie wyjątek.
-------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 68 Pomógł: 0 Dołączył: 22.07.2007 Ostrzeżenie: (0%) ![]() ![]() |
a jest jakas mozliwosc zeby go ominac/pominac? - jak zwal tak zwal
nie ode mnie zalezy to jak taki plik xml wyglada a nie moge sobie pozwolic aby kazdy z plikow rozpatrywac osobno bo w tym wypadku przeczy to automatyzacji tego procesu ![]() moze mozna jakos sprawdzic poprawnosc xml'a przed jego parsowaniem? |
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
manual -> xmlreader http://pl.php.net/manual/pl/xmlreader.isvalid.php
Zajęło mi to 30 sekund, taka mała porada na przyszłośc. -------------------- |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 68 Pomógł: 0 Dołączył: 22.07.2007 Ostrzeżenie: (0%) ![]() ![]() |
juz to przerabialem ale nie wiem czy ja cos zlego z tym robie
w kazdym razie caly czas powyzsze daje mi TRUE czyli pozytwna walidacje xml'a nie wiem czy jest to odpowiedzialne za sprawdzenie poprawnosci drzewa xml'a? choc i teraz probowalem mu poddac xml'a z niedomnietym znacznikiem ale u mnie w kazdym razie blad polega na nieprawidlowych znakach - cos zlego jest w kodowaniu samego tekstu miedzy znacznikami i stad wynika problem bo poki co nie natrafilem na bledy tego typu choc jak to napisalem powyzej nawet jak wrzucam do walidacji zgodnie z przykladem w manualu
to otrzymuje 1bool(true) takze wybaczcie za moja niewiedze ale nie potrafie sobie z tym poradzic ![]() moze error_reporting(0); ale czy to jest tak na prawde dobre rozwiazanie? Ten post edytował aladin07 25.01.2010, 11:27:07 |
|
|
![]()
Post
#6
|
|
![]() Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
Faktycznie isValid nie sprawdza całego drzewa. Wieć wystarczy po prostu skorzystać z read() by wyłapać czy czy xml jest błędny.
Zrób sobie funkcję, która będzie parsowała xmla i jeżeli będzie błędny to zwróci false, jeżeli będzie ok to zwróci jego treść. Taki jest raczej najprostszy sposób. Dodatkowo spróbuj podać kodowanie xmla (drugi atrybut czy open()), może rozwiąże twój problem. Jeżeli nie wypuśc tego xmla to potestujemy. -------------------- |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 68 Pomógł: 0 Dołączył: 22.07.2007 Ostrzeżenie: (0%) ![]() ![]() |
czyli mam miec cos na wzor tego co ponizej - bo oczywiscie mi nie dziala i nadal wywala ten sam blad
ale to pewnie dlatego ze teraz przy najprostszej konstrukcji sam wysiadam w tym temacie bo juz mam mlynek w glowie ![]()
take ewentualnie prosze pomoz mi ta konstrukcje zrobic a jesli chodzi o samego xml'a to ponizej
nie moge sobie poradzic chocby z odkryciem jego kodowania caly czas dostaje ze jest to UTF-8 wiec nie mam szans zeby wylapac wsrod wszystkich xml'i tych "czarnych owiec" i je przekonwertowac przekonwertowanie powyzszego z UTF-8 na widnows-1250 daje pozytywne skutki - ale jak to wylapac skoro nawet mb_detect_encoding pokazuje mi ze jest to UTF-8 ![]() |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 13:28 |