Parse OPML

Import an OPML subscription tree with folders, feed URLs, and extension fields.

freeworks offlinenothing uploaded
ToolOPML Parser
Input
Output
Put this on your own site

The frame below runs the same code as this page, in the reader's own browser. Nothing is sent to us, and nothing is sent to you.

Pick a dark background and the text and panels follow it, so the frame stays readable on a dark page.

Preview

How it works

The XML outline tree becomes nested nodes preserving text, type, xmlUrl, htmlUrl, and extension attributes. Feed outlines retain folder hierarchy rather than flattening into one list.

  • Nesting represents folders.
  • Unknown extension attributes survive parsing.

Worked example

Parse OPML feed subscription list
Extract feed URLs and metadata from an OPML 2.0 subscription file
Input
											<?xml version="1.0" encoding="UTF-8"?>
<opml version="2.0">
  <head><title>My Feeds</title></head>
  <body>
    <outline text="Tech" type="rss" xmlUrl="https://example.com/feed.xml" htmlUrl="https://example.com"/>
  </body>
</opml>
										
Output
												Text: Tech
Type: rss
XML URL: https://example.com/feed.xml
HTML URL: https://example.com
											

When to use this

Feed migrations, podcast lists, and shared reading bundles parse OPML.

Edge cases

  • A folder outline may lack xmlUrl and htmlUrl.
  • Extensions need round-trip preservation.
  • The same feed URL can appear under multiple folders.

References