Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Xml Reader wywala błąd podczas przedwarzania pliku
Forum PHP.pl > Forum > PHP
robert0770
cześć mam plik xml który ową pozycje ma w znaczkach cdata

podczas jego przetwarzania (czytania) wywala błąd:


  1. :49756: parser error : Extra content at the end of the document in /var/www/html/projekt/vendor/hakre/xmlreaderiterator/src/XMLReaderNode.php on line 224
  2. PHP Warning: XMLReader::expand(): DUCATO Autobus (244, Z_) | 2.0 4x4 (81KW/110 KM) | 2002.05 - 2006.07 in /var/www/html/projekt/vendor/hakre/xmlreaderiterator/src/XMLReaderNode.php on line 224
  3. PHP Warning: XMLReader::expand(): ^ in /var/www/html/projekt/vendor/hakre/xmlreaderiterator/src/XMLReaderNode.php on line 224
  4. PHP Warning: XMLReader::expand(): An Error Occurred while expanding in /var/www/html/projekt/vendor/hakre/xmlreaderiterator/src/XMLReaderNode.php on line 224



a w tej linijce mam

  1. 49756 DUCATO Autobus (244, Z_) | 2.0 4x4 (81KW/110 KM) | 2002.05 - 2006.07^M^M$


sprawdzałem z takimi przełącznikami

  1. cat -ETvAn


mógłby ktoś nakierować czemu?
Pilsener
Cytat
mam plik xml


  1. 1. 49756 DUCATO Autobus (244, Z_) | 2.0 4x4 (81KW/110 KM) | 2002.05 - 2006.07^M^M$


Nie wygląda to jak plik XML.
darko
Cytat(Pilsener @ 3.02.2018, 19:32:00 ) *
Nie wygląda to jak plik XML.

Napisał, że ma to w sekcji CDATA.

robert0770 - pokaż jakiś kod, żeby można było coś więcej wywnioskować. Jeśli ten dash (^) faktycznie jest w sekcji CDATA, to nie powinno generować takiego problemu. Polecam włączyć wyświetlanie błędów na początku skryptu:

  1. ini_set('display_errors', 'On');
robert0770
  1. $xml->open($url)
  2. $itemIterator = new \XMLElementIterator($xml, 'items');
  3.  
  4. foreach ($itemIterator as $item){
  5. $item = $item->getSimpleXMLElement();
  6. (.............)
  7. $content = '';
  8. if (!empty($item->content))
  9. $content .= $item->content;
  10. else
  11. {
  12. $contentTmp = $item->getChildElements('content');
  13. $content = trim($contentTmp->__toString());
  14. }
  15. (.............)
  16. }


tylko content ma znaczniki cdata ale nie potrafiłem ich poprawnie wyciągnąć (więc poradziłem sobie tak jak wyżej) bo standardowa opcja ($item->content) filtrowała wszystko co było w sekcji cdata

przetestowałem plik jeszcze raz i o dziwo już jest dobrze nie wywala tego błądu w tym miejscu
dziwna sprawa
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.