XML_Feed_Parser
[ class tree: XML_Feed_Parser ] [ index: XML_Feed_Parser ] [ all elements ]

Class: XML_Feed_Parser_RSS2

Source Location: /XML_Feed_Parser-0.3.0beta/Parser/RSS2.php

Class Overview

XML_Feed_Parser_Type
   |
   --XML_Feed_Parser_RSS2

This class handles RSS2 feeds.


Author(s):

Version:

  • Release: @package_version@

Variables

Methods


Child classes:

XML_Feed_Parser_RSS2Element
This class provides support for RSS 2.0 entries. It will usually be called by XML_Feed_Parser_RSS2 with which it shares many methods.

Inherited Variables

Inherited Methods

Class: XML_Feed_Parser_Type

XML_Feed_Parser_Type::addBase()
Gets us the xml:base data and then processes that with regard to our current link.
XML_Feed_Parser_Type::combineBases()
We have other methods which will traverse the DOM and work out the different xml:base declarations we need to be aware of. We then need to combine them.
XML_Feed_Parser_Type::count()
This function will tell us how many times the element $type appears at this level of the feed.
XML_Feed_Parser_Type::getCategory()
There is no single way of declaring a category in RSS1/1.1 as there is in RSS2
XML_Feed_Parser_Type::getContent()
The official way to include full content in an RSS1 entry is to use the content module's element 'encoded', and RSS2 feeds often duplicate that.
XML_Feed_Parser_Type::getDate()
Get a date construct. We use PHP's strtotime to return it as a unix datetime
XML_Feed_Parser_Type::getEntryByOffset()
Pretty fundamental!
XML_Feed_Parser_Type::getText()
Get a text construct.
XML_Feed_Parser_Type::hasKey()
Checks if this element has a particular child element.
XML_Feed_Parser_Type::processXHTMLAttributes()
We need a couple of methods to access XHTML content stored in feeds.
XML_Feed_Parser_Type::traverseNode()
We need a couple of methods to access XHTML content stored in feeds.
XML_Feed_Parser_Type::__call()
We are not going to provide methods for every entry type so this function will allow for a lot of mapping. We rely pretty heavily on this to handle our mappings between other feed types and atom.
XML_Feed_Parser_Type::__get()
For many elements variable-style access will be desirable. This function provides for that.
XML_Feed_Parser_Type::__toString()
Return an XML serialization of the feed, should it be required. Most users however, will already have a serialization that they used when instantiating the object.

Class Details

[line 31]
This class handles RSS2 feeds.


[ Top ]


Class Variables

$compatMap = array(
        'title' => array('title'),'rights'=>array('copyright'),'updated'=>array('lastBuildDate'),'subtitle'=>array('description'),'date'=>array('pubDate'),'author'=>array('managingEditor'))

[line 96]

Here we map some elements to their atom equivalents. This is going to be quite tricky to pull off effectively (and some users' methods may vary) but is worth trying. The key is the atom version, the value is RSS2.
  • Access: protected

Type:   array


[ Top ]

$itemClass =  'XML_Feed_Parser_RSS2Element'

[line 55]

The class used to represent individual items
  • Access: protected

Type:   string


[ Top ]

$itemElement =  'item'

[line 61]

The element containing entries
  • Access: protected

Type:   string


[ Top ]

$map = array(
        'ttl' => array('Text'),'pubDate'=>array('Date'),'lastBuildDate'=>array('Date'),'title'=>array('Text'),'link'=>array('Link'),'description'=>array('Text'),'language'=>array('Text'),'copyright'=>array('Text'),'managingEditor'=>array('Text'),'webMaster'=>array('Text'),'category'=>array('Text'),'generator'=>array('Text'),'docs'=>array('Text'),'ttl'=>array('Text'),'image'=>array('Image'),'skipDays'=>array('skipDays'),'skipHours'=>array('skipHours'))

[line 71]

Here we map those elements we're not going to handle individually

to the constructs they are. The optional second parameter in the array tells the parser whether to 'fall back' (not apt. at the feed level) or fail if the element is missing. If the parameter is not set, the function will simply return false and leave it to the client to decide what to do.

  • Access: protected

Type:   array


[ Top ]

$namespaces = array(
        'dc' => 'http://purl.org/rss/1.0/modules/dc/',
        'content' => 'http://purl.org/rss/1.0/modules/content/')

[line 104]

  • Access: protected

Type:   mixed


[ Top ]

$version =  'RSS 2.0'

[line 49]

The feed type we are parsing
  • Access: public

Type:   string


[ Top ]

$xpath =

[line 43]

We're likely to use XPath, so let's keep it global
  • Access: protected

Type:   DOMXPath


[ Top ]



Method Detail

__construct (Constructor)   [line 114]

XML_Feed_Parser_RSS2 __construct( DOMDocument $model, [bool $strict = false], DOMDocument $xml)

Our constructor does nothing more than its parent.

Overridden in child classes as:

XML_Feed_Parser_RSS2Element::__construct()
Store useful information for later.

Parameters:

DOMDocument   $xml   —  A DOM object representing the feed
bool   $strict   —  (optional) $string Whether or not to validate this feed
DOMDocument   $model   — 

[ Top ]

getCategory   [line 160]

string|array|false getCategory( string $call, [array $arguments = array()])

The category element is a simple text construct which can occur any number of times. We allow access by offset or access to an array of results.

Overrides XML_Feed_Parser_Type::getCategory() (There is no single way of declaring a category in RSS1/1.1 as there is in RSS2)

Parameters:

string   $call   —  for compatibility with our overloading
array   $arguments   —  - arg 0 is the offset, arg 1 is whether to return as array

[ Top ]

getCloud   [line 276]

array getCloud( )

The cloud element is rarely used. It is designed to provide some details of a location to update the feed.
  • Return: an array of the attributes of the element

[ Top ]

getEntryById   [line 139]

XML_Feed_Parser_RSS2Element getEntryById( string $id)

This is not really something that will work with RSS2 as it does not have clear restrictions on the global uniqueness of IDs. But we can emulate it by allowing access based on the 'guid' element.

Parameters:

string   $id   —  any valid ID.

[ Top ]

getImage   [line 183]

array|false getImage( )

Get details of the image associated with the feed.
  • Return: an array simply containing the child elements
  • Access: protected

[ Top ]

getLink   [line 300]

string getLink( int $offset, [string $attribute = 'href'], [array $params = array()])

In RSS2 a link is a text element but in order to ensure that we resolve URLs properly we have a special function for them. We maintain the parameter used by the atom getLink method, though we only use the offset parameter.

Parameters:

int   $offset   — 
string   $attribute   — 
array   $params   — 

[ Top ]

getSkipDays   [line 265]

array getSkipDays( )

The skipdays element provides a list of days on which this feed should not be checked. We return an array of those days.

[ Top ]

getSkipHours   [line 254]

array getSkipHours( )

The skiphours element provides a list of hourss on which this feed should not be checked. We return an array of those hours (integers, 24 hour clock)

[ Top ]

getSkips   [line 233]

array|false getSkips( string $tagName)

This is a general function used by both getSkipDays and getSkipHours. It simply returns an array of the values of the children of the appropriate tag.
  • Access: protected

Parameters:

string   $tagName   — 

[ Top ]

getTextInput   [line 211]

array|false getTextInput( )

The textinput element is little used, but in the interests of completeness...

[ Top ]


Documentation generated on Mon, 11 Mar 2019 14:32:43 -0400 by phpDocumentor 1.4.4. PEAR Logo Copyright © PHP Group 2004.