Metadata-Version: 1.0
Name: opml
Version: 0.5
Summary: Lightweight OPML parsing.
Home-page: http://wiki.creativecommons.org/Python_OPML
Author: Nathan R. Yergler
Author-email: nathan@yergler.net
License: MIT
Description: ===================
        Python OPML Support
        ===================
        
        :Date: $LastChangedDate: 2007-03-20 08:30:21 -0700 (Tue, 20 Mar 2007) $
        :Version: $LastChangedRevision: 5612 $
        :Author: Nathan R. Yergler <nathan@yergler.net>
        :Organization: `Creative Commons <http://creativecommons.org>`_
        :Copyright:
        2008, Nathan R. Yergler, Creative Commons;
        licensed to the public under the `MIT license
        <http://opensource.org/licenses/mit-license.php>`_.
        
        .. contents::
        
        **opml** provides simple support for reading `OPML <http://opml.org>`_
        files.  OPML is an XML-based format for describing outlines and is
        often used as an interchange format for subscription lists.  This
        package is intended as a light-weight, permissive parser.  It does
        very little validation of the incoming OPML.
        
        
        Installation
        ************
        
        The Python OPML package and its dependencies may be installed using
        `easy_install <http://peak.telecommunity.com/DevCenter/EasyInstall>`_
        (recommended) ::
        
        $ easy_install opml
        
        or by using the standard distutils setup.py::
        
        $ python setup.py install
        
        If installing using setup.py, `lxml <http://codespeak.net/lxml>`_
        will also need to be installed.  ``easy_install`` will manage this for you.
        
        
        Usage
        *****
        
        .. admonition:: Document Purpose
        
        This document is intended to provide a set of literate tests
        for the ``opml`` package; it is **not** intended to provide
        thorough coverage of the OPML specification or semantics.  See
        the `OPML 2 Specification <http://www.opml.org/spec2>`_ for
        details on OPML.
        
        **opml** can parse OPML from a URI or from a local string.  For
        example, to parse an example from the OPML validator:
        
        >>> import opml
        >>> outline = opml.parse(
        ... 'http://hosting.opml.org/dave/validatorTests/clean/subscriptionList.opml')
        
        Elements in the OPML header can be accessed as attributes:
        
        >>> outline.title
        'mySubscriptions.opml'
        >>> outline.ownerName
        'Dave Winer'
        >>> outline.ownerEmail
        'dave@scripting.com'
        
        Items in an OPML outline are stored in ``<outline>`` elements; these
        are accessible via the standard Python sequence operators:
        
        >>> len(outline)
        13
        >>> outline[0]
        <opml.OutlineElement object at ...>
        
        An ``OutlineElement`` object exposes the attributes associated with
        the element as properties:
        
        >>> outline[0].text
        'CNET News.com'
        >>> outline[0].type
        'rss'
        
        ``outline`` elements may contain other outline elements:
        
        >>> len(outline[0])
        0
        
        When parsing a feed with nested items, the sub-items are accessible
        using the standard Python sequence operators:
        
        >>> nested = \
        ... opml.parse('http://hosting.opml.org/dave/spec/placesLived.opml')
        >>> len(nested[0])
        6
        >>> nested[0][0].text
        'Boston'
        >>> len(nested[0][0])
        2
        >>> nested[0][0][0].text
        'Cambridge'
        
        Download
        ********
        
Keywords: xml opml
Platform: UNKNOWN
