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

Class: XML_Feed_Parser_Type

Source Location: /XML_Feed_Parser-1.0.0RC1/Parser/Type.php

Class Overview


This abstract class provides some general methods that are likely to be implemented exactly the same way for all feed types.


Author(s):

Version:

  • Release: @package_version@

Methods


Child classes:

XML_Feed_Parser_Atom
This is the class that determines how we manage Atom 1.0 feeds
XML_Feed_Parser_RSS1
This class handles RSS1.0 feeds.
XML_Feed_Parser_RSS11
This class handles RSS1.1 feeds. RSS1.1 is documented at: http://inamidst.com/rss1.1/
XML_Feed_Parser_RSS2
This class handles RSS2 feeds.
XML_Feed_Parser_RSS09
This class handles RSS0.9 feeds.

Inherited Variables

Inherited Methods


Class Details

[line 32]
This abstract class provides some general methods that are likely to be implemented exactly the same way for all feed types.


[ Top ]


Method Detail

addBase   [line 171]

string addBase( string $link, DOMElement $element)

Determine whether we need to apply our xml:base rules

Gets us the xml:base data and then processes that with regard to our current link.


Parameters:

string   $link     
DOMElement   $element     

[ Top ]

combineBases   [line 132]

void combineBases( string $base, string $link)

Utility function to help us resolve xml:base values

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. If a declaration starts with a protocol then we restart the string. If it starts with a / then we add on to the domain name. Otherwise we simply tag it on to the end.


Parameters:

string   $base     - the base to add the link to
string   $link     

[ Top ]

count   [line 289]

int count( string $type)

Count occurrences of an element

This function will tell us how many times the element $type appears at this level of the feed.


Parameters:

string   $type     the element we want to get a count of

[ Top ]

getCategory   [line 262]

string|array|false getCategory( string $call, array $arguments)

Apply various rules to retrieve category data.

There is no single way of declaring a category in RSS1/1.1 as there is in RSS2 and Atom. Instead the usual approach is to use the dublin core namespace to declare categories. For example delicious use both: <dc:subject>PEAR</dc:subject> and: <taxo:topics><rdf:Bag> <rdf:li resource="http://del.icio.us/tag/PEAR" /></rdf:Bag></taxo:topics> to declare a categorisation of 'PEAR'.

We need to be sensitive to this where possible.


Overridden in child classes as:

XML_Feed_Parser_Atom::getCategory()
Get a category from the entry.
XML_Feed_Parser_RSS2::getCategory()
Get a category from the element

Parameters:

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

[ Top ]

getContent   [line 374]

string|false getContent( )

Get content from RSS feeds (atom has its own implementation)

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. Often, however, the 'description' element is used instead. We will offer that as a fallback. Atom uses its own approach and overrides this method.


Overridden in child classes as:

XML_Feed_Parser_AtomElement::getContent()
Returns the content of the content element or info on a specific attribute
XML_Feed_Parser_RSS11Element::getContent()
Return the entry's content

[ Top ]

getDate   [line 220]

int|false getDate( string $method, array $arguments)

Return a date in seconds since epoch.

Get a date construct. We use PHP's strtotime to return it as a unix datetime, which is the number of seconds since 1970-01-01 00:00:00.


Parameters:

string   $method     The name of the date construct we want
array   $arguments     Included for compatibility with our __call usage

[ Top ]

getEntryByOffset   [line 190]

XML_Feed_Parser_RSS1Element getEntryByOffset( int $offset)

Get an entry by its position in the feed, starting from zero

As well as allowing the items to be iterated over we want to allow users to be able to access a specific entry. This is one of two ways of doing that, the other being by ID.


Parameters:

int   $offset     

[ Top ]

getSchemaDir   [line 434]

string getSchemaDir( )

Get directory holding RNG schemas. Method is based on that found in Contact_AddressBook.
  • Return: PEAR data directory.
  • Static: This method can be called statically
  • Access: public

[ Top ]

getText   [line 236]

string getText( string $method, [array $arguments = array()])

Get a text construct.

Overridden in child classes as:

XML_Feed_Parser_Atom::getText()
Retrieves an element's content where that content is a text construct.

Parameters:

string   $method     The name of the text construct we want
array   $arguments     Included for compatibility with our __call usage

[ Top ]

hasKey   [line 407]

bool hasKey( String $name, [Integer $offset = 0])

Checks if this element has a particular child element.

Parameters:

String   $name     
Integer   $offset     

[ Top ]

processXHTMLAttributes   [line 307]

string processXHTMLAttributes( DOMElement $node)

Part of our xml:base processing code

We need a couple of methods to access XHTML content stored in feeds. This is because we dereference all xml:base references before returning the element. This method handles the attributes.


Parameters:

DOMElement   $node     The DOM node we are iterating over

[ Top ]

traverseNode   [line 335]

string traverseNode( DOMElement $node)

Part of our xml:base processing code

We need a couple of methods to access XHTML content stored in feeds. This is because we dereference all xml:base references before returning the element. This method recurs through the tree descending from the node and builds our string


Parameters:

DOMElement   $node     The DOM node we are processing

[ Top ]


Documentation generated on Thu, 27 Jul 2006 10:12:06 -0400 by phpDocumentor 1.2.3. PEAR Logo Copyright © PHP Group 2004.