public function testStripXmlTag() { $data = file_get_contents('tests/fixtures/jeux-linux.fr.xml'); $this->assertEquals('<rss', substr(Filter::stripXmlTag($data), 0, 4)); $data = file_get_contents('tests/fixtures/ezrss.it'); $this->assertEquals('<!DOC', substr(Filter::stripXmlTag($data), 0, 5)); $data = file_get_contents('tests/fixtures/fulltextrss.xml'); $this->assertEquals('<rss', substr(Filter::stripXmlTag($data), 0, 4)); $data = file_get_contents('tests/fixtures/sametmax.xml'); $this->assertEquals('<rss', substr(Filter::stripXmlTag($data), 0, 4)); $data = file_get_contents('tests/fixtures/ibash.ru.xml'); $this->assertEquals('<rss', substr(Filter::stripXmlTag($data), 0, 4)); $data = file_get_contents('tests/fixtures/pcinpact.xml'); $this->assertEquals('<rss', substr(Filter::stripXmlTag($data), 0, 4)); $data = file_get_contents('tests/fixtures/resorts.xml'); $this->assertEquals('<rss', substr(Filter::stripXmlTag($data), 0, 4)); $data = file_get_contents('tests/fixtures/rue89.xml'); $this->assertEquals('<rss', substr(Filter::stripXmlTag($data), 0, 4)); $data = file_get_contents('tests/fixtures/cercle.psy.xml'); $this->assertEquals('<rss', substr(Filter::stripXmlTag($data), 0, 4)); $data = file_get_contents('tests/fixtures/lagrange.xml'); $this->assertEquals('<feed', substr(Filter::stripXmlTag($data), 0, 5)); $data = file_get_contents('tests/fixtures/googleblog.xml'); $this->assertEquals('<feed', substr(trim(Filter::stripXmlTag($data)), 0, 5)); $data = file_get_contents('tests/fixtures/atomsample.xml'); $this->assertEquals('<feed', substr(trim(Filter::stripXmlTag($data)), 0, 5)); $data = file_get_contents('tests/fixtures/planete-jquery.xml'); $this->assertEquals('<rdf:RDF', trim(substr(trim(Filter::stripXmlTag($data)), 0, 8))); }
/** * Constructor. * * @param string $content Feed content * @param string $http_encoding HTTP encoding (headers) * @param string $fallback_url Fallback url when the feed provide relative or broken url */ public function __construct($content, $http_encoding = '', $fallback_url = '') { $this->fallback_url = $fallback_url; $xml_encoding = XmlParser::getEncodingFromXmlTag($content); // Strip XML tag to avoid multiple encoding/decoding in the next XML processing $this->content = Filter::stripXmlTag($content); // Encode everything in UTF-8 Logger::setMessage(get_called_class() . ': HTTP Encoding "' . $http_encoding . '" ; XML Encoding "' . $xml_encoding . '"'); $this->content = Encoding::convert($this->content, $xml_encoding ?: $http_encoding); $this->itemPostProcessor = new ItemPostProcessor($this->config); $this->itemPostProcessor->register(new ContentGeneratorProcessor($this->config)); $this->itemPostProcessor->register(new ContentFilterProcessor($this->config)); }
/** * Constructor * * @access public * @param string $content Feed content * @param string $http_encoding HTTP encoding (headers) * @param string $fallback_url Fallback url when the feed provide relative or broken url */ public function __construct($content, $http_encoding = '', $fallback_url = '') { $this->date = new DateParser(); $this->fallback_url = $fallback_url; $xml_encoding = XmlParser::getEncodingFromXmlTag($content); // Strip XML tag to avoid multiple encoding/decoding in the next XML processing $this->content = Filter::stripXmlTag($content); // Encode everything in UTF-8 Logger::setMessage(get_called_class() . ': HTTP Encoding "' . $http_encoding . '" ; XML Encoding "' . $xml_encoding . '"'); $this->content = Encoding::convert($this->content, $xml_encoding ?: $http_encoding); // Workarounds $this->content = Filter::normalizeData($this->content); }