OPML Browser

Superceded. See the Optimal OPML Browser.

Following Voidstar's OPML Browser and OLIVE, I've put together my own OPML browser.

I've tweaked it quite a bit. For example, I think it can handle just about any OPML you throw at it, no matter how far out of spec. However, it's still very much a work in progress.

The HTML rendering is performed almost entirely with XSL transforms (with the exception of (1) URI encoding the query string passed back to the browser to "expand" included OPML links and (2) mangling the author's email address a little bit). Update: It's all XSLT, now.

The XSL, CSS, and JavaScript are based in large part on the work of Joshua Allen.

Link: View the PHP source or the XSL.


  1. Great work, I love it! Do you intend to offer a ‘white labelled’ service at some stage so that I could forward my own domain to an instance of this browser to render my own directory?

  2. Thanks for the feedback everyone. James, what exactly did you have in mind? Note that you are free to take the source code and use it on your own site. The requirements are pretty slim: PHP with DOM XML and libxslt (which is a pretty standard hosted setup). And depending on what you want to do, it could be as simple as adding one line of code to the top of your OPML file. Let me know if you want to pursue this.

  3. Nope. Apparently I’m set up to do it. It must be operator error. Got this note from my host.


    Your server has both PHP with DOM XML and libxslt, so this script should work correctly. Let us know if you’re having problems with it, and we can see if we can figure out the problem.

  4. Amy, I’ve completely neglected this in favor of my OPML Renderer plugin for WordPress. From the error messages, it looks like you don’t have it “installed” properly. Actually, it looks like you’ve got a stray “|” character getting rendered at the beginning of the script, somehow.

    Anyway, I’ve been meaning to update this to back-in the inclusion magic from OPML Renderer, so you may want to hold off a bit.

    You can install this test script on your server and run it to confirm that your setup is compatible.

Comments are closed.