_aggregator_parse_opml

Versions
mediamosa-21
_aggregator_parse_opml($opml)

Parse an OPML file.

Feeds are recognized as <outline> elements with the attributes <em>text</em> and <em>xmlurl</em> set.

Parameters

$opml The complete contents of an OPML document.

Return value

An array of feeds, each an associative array with a <em>title</em> and a <em>url</em> element, or NULL if the OPML document failed to be parsed. An empty array will be returned if the document is valid but contains no feeds, as some OPML documents do.

Code

modules/aggregator/aggregator.admin.inc, line 360

<?php
function _aggregator_parse_opml($opml) {
  $feeds = array();
  $xml_parser = drupal_xml_parser_create($opml);
  if (xml_parse_into_struct($xml_parser, $opml, $values)) {
    foreach ($values as $entry) {
      if ($entry['tag'] == 'OUTLINE' && isset($entry['attributes'])) {
        $item = $entry['attributes'];
        if (!empty($item['XMLURL']) && !empty($item['TEXT'])) {
          $feeds[] = array('title' => $item['TEXT'], 'url' => $item['XMLURL']);
        }
      }
    }
  }
  xml_parser_free($xml_parser);

  return $feeds;
}
?>