Próbuję poniższym kodem:
<?php $xml = simplexml_load_file("http://serwer/xml.php?param1=a¶m2=b"); ?>
załadować plik XML, który jest zwracany przez plik xml.php.
Wszystko jest ok do momentu, gdy plik xml.php nie zwraca XMLa, który zawiera takie coś:
<Part> <POLE>Pierwsza linijka Druga linijka</POLE> </Part>
Wtedy simplexml zwraca błąd:
<?php parser error : Premature end of data in tag Part ?>
w linijce gdzie znajduje się
<?php $xml = simplexml_load_file("http://serwer/xml.php?param1=a¶m2=b"); ?>
Testowałem i zauważyłem, że problem leży w tych "enterach" w XMLu - jak je usunę do testów wszystko działa ok. Tyle, że nie mogę ich usunąć na stałe, bo tak je dostaję "z góry".
Szukałem informacji o tym temacie w sieci, ale nie znalazłem nic co by mogło tu pomóc.
Czy macie jakieś wskazówki jak się z tym uporać?
Z góry dziękuję bardzo za pomoc.
Pozdrawiam
//EDIT:
Właśnie zauważyłem, że plik xml.php urywa XML, którego dostaje z webserwisów. Kod funkcji zaciągającej dane z tego webserwisu:
<?php function socketpost($domain,$portno,$method,$url,$data) { $http_request = ""; $http_response = ""; // building POST-request: $http_request.= $method." ".$url ." HTTP/1.0r\n"; $http_request.= "Content-type: application/x-www-form-urlencodedr\n"; $http_request.= "Cache-Control: no-cacher\n"; $http_request.= "User-Agent: MSIEr\n"; $http_request.="Connection: closer\n"; $http_request.="r\n"; $http_request.= $data."r\n"; if($fp) { } else { } $header=$response[0]; return $responsecontent; } ?>
EDIT:
No i udało się naprawić funkcję

<?php function socketpost($domain,$portno,$method,$url,$data) { $http_request = ""; $http_response = ""; // building POST-request: $http_request.= $method." ".$url ." HTTP/1.0r\n"; $http_request.= "Content-type: application/x-www-form-urlencodedr\n"; $http_request.= "Cache-Control: no-cacher\n"; $http_request.= "User-Agent: MSIEr\n"; $http_request.="Connection: closer\n"; $http_request.="r\n"; $http_request.= $data."r\n"; if($fp) { } } else { } $header=$response[0]; return $responsecontent; } ?>