From: Andrew Dolgov Date: Wed, 19 Jun 2013 15:40:36 +0000 (+0400) Subject: feedparser: check if initial xpath query for root element returns anything X-Git-Tag: 1.9~103 X-Git-Url: https://git.wh0rd.org/?a=commitdiff_plain;h=a9000b03443d64ac5d7137c868862a5e1496e871;p=tt-rss.git feedparser: check if initial xpath query for root element returns anything --- diff --git a/classes/feedparser.php b/classes/feedparser.php index d93c575b..eb8606de 100644 --- a/classes/feedparser.php +++ b/classes/feedparser.php @@ -51,24 +51,28 @@ class FeedParser { $this->xpath = $xpath; - $root = $xpath->query("(//atom03:feed|//atom:feed|//channel|//rdf:rdf|//rdf:RDF)")->item(0); + $root = $xpath->query("(//atom03:feed|//atom:feed|//channel|//rdf:rdf|//rdf:RDF)"); if ($root) { - switch (mb_strtolower($root->tagName)) { - case "rdf:rdf": - $this->type = $this::FEED_RDF; - break; - case "channel": - $this->type = $this::FEED_RSS; - break; - case "feed": - $this->type = $this::FEED_ATOM; - break; - default: - if( !isset($this->error) ){ - $this->error = "Unknown/unsupported feed type"; + $root = $root->item(0); + + if ($root) { + switch (mb_strtolower($root->tagName)) { + case "rdf:rdf": + $this->type = $this::FEED_RDF; + break; + case "channel": + $this->type = $this::FEED_RSS; + break; + case "feed": + $this->type = $this::FEED_ATOM; + break; + default: + if( !isset($this->error) ){ + $this->error = "Unknown/unsupported feed type"; + } + return; } - return; } switch ($this->type) {