Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> simplexml - invalid xmlChar value
Regss
post
Post #1





Grupa: Zarejestrowani
Postów: 60
Pomógł: 0
Dołączył: 7.05.2006

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


Witam.
Zaczynam zabawę z simplexml. Oto mój prosty skrypt:

  1. <?php
  2. $z_xml = simplexml_load_file('videodb.xml');
  3. foreach ($z_xml->movie as $z_movie)
  4. {
  5. echo "$z_movie->title - $z_movie->fileinfo - $z_movie->studio - ";
  6. foreach ($z_movie->fileinfo as $z_fileinfo)
  7. {
  8. foreach ($z_fileinfo->streamdetails as $z_streamdetails)
  9. {
  10. foreach ($z_streamdetails->video as $z_video)
  11. {
  12. echo "$z_video->codec<br>";
  13. }
  14. }
  15. }
  16. }
  17. ?>


Otrzymuje błąd:
  1. Warning: simplexml_load_file() [function.simplexml-load-file]: videodb.xml:69293: parser error : xmlParseCharRef: invalid xmlChar value 11 in D:\Programy\VertrigoServ\www\xml\index.php on line 3
  2.  
  3. Warning: simplexml_load_file() [function.simplexml-load-file]: y przeżyli, zmienia w potwory. Robert Neville jest ostatnim człowiekiem &#x0B; in D:\Programy\VertrigoServ\www\xml\index.php on line 3
  4.  
  5. Warning: simplexml_load_file() [function.simplexml-load-file]: ^ in D:\Programy\VertrigoServ\www\xml\index.php on line 3
  6.  
  7. Warning: Invalid argument supplied for foreach() in D:\Programy\VertrigoServ\www\xml\index.php on line 4


Jak prosto pominąć nieobsługiwane znaki?
Pozdrawiam.
Go to the top of the page
+Quote Post
Fifi209
post
Post #2





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Możesz pokazać nam plik xml który parsujesz?
Go to the top of the page
+Quote Post
Regss
post
Post #3





Grupa: Zarejestrowani
Postów: 60
Pomógł: 0
Dołączył: 7.05.2006

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


Proszę bardzo:

videodb.xml
Skróciłem lekko plik bo ważył 8MB

Zamierzam napisać skrypt przenoszący bazę z xml do mysql, może lepiej jest użyć xmlreader będzie szybciej?

Ten post edytował Regss 2.04.2011, 17:03:56
Go to the top of the page
+Quote Post
wmatusiak
post
Post #4





Grupa: Zarejestrowani
Postów: 25
Pomógł: 7
Dołączył: 27.03.2011
Skąd: Kęty

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


Kod
&#x0B;

Jest nie dozwolonym znakiem w dokumentach XML 1.0 stąd problem
XML 1.1 już pozwala na użycie tego znaku nie pamiętam czy simplexml potrafi sobie poradzić z 1.1 (nie mam na tej maszynie php więc nie mam jak sprawdzić).
Najprościej zmień w nagłówku
Kod
version="1.0"

na
Kod
version="1.1"

I spróbuj ponownie (IMG:style_emoticons/default/wink.gif) jak zadziała to znaczy że simplexml radzi sobie z 1.1 jak nie zadziała to ja bym ten znak porostu usunął.

Ten post edytował wmatusiak 6.04.2011, 20:40:45
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 5.10.2025 - 05:34