spacer

Webref WebRef   Sitemap · Experts · Tools · Services · Newsletters · About i.com

home / experts / xml / column26

Tools Update: RSSApplet and Xparse-J

Applications Developer - Sharepoint
Professional Technical Resources
US-OR-Portland

Justtechjobs.com Post A Job | Post A Resume
Developer News
Microsoft Shows Some Ankle With Visual Studio
Gentoo Linux Cancels Distribution
It's Official: Windows 7 at PDC, WinHEC

Webmasters need tools for many technologies, and XML is no exception. The venerable RSSViewerApplet had a few problems and limitations that have been removed in the newly released version 1.2.

First and foremost there is better compatibility with the RSS 0.91 version upgrade from 0.9:

Let's look at the necessary code changes. The previous version is documented in column11. The RSSChannel loading procedure needs to be made more flexible:

  public void load(String srcURL) throws Exception {
    root = new Xparse().parse(readChannel(srcURL));
    Node doc = root.find("RDF", 1);
    if (doc == null) doc = root.find("rss", 1);
    if (doc == null) throw new Exception(" or  missing, is this an RSS file?");

The doc node represents the top node of the RSS file, which in RSS 0.9 was identified by <rdf:RDF xmlns="..." rdf:xmlns="...">. This established RSS as an application of the Resource Description Framework (RDF), using namespaces to distinguish RDF tags from RSS elements. RSS 0.91 declared <rss version="0.91"> as the root node, so my code fix now tries to find one or the other, and gives up with an error message if it could not.

    Node n = doc.find("channel/title", 1);
    if (n == null) throw new Exception("<channel><title> missing.");
    channelTitle = n.getCharacters();
    n = doc.find("channel/link", 1);
    if (n == null) throw new Exception("<channel><link> missing.");
    channelLink = new URL(n.getCharacters());
The rest has been changed to also give error messages for missing channel titles and links instead of throwing NullPointerExceptions as in the previous versions.

    items = new Vector();
    int pos = 0;
    while (true) {
      n = doc.find("item/title", pos+1);
      if (n == null) break;
      items.insertElementAt(n.getCharacters(), 2*pos);
      n = doc.find("item/link", pos+1);
      if (n == null) break;
      items.insertElementAt(new URL(n.getCharacters()), 2*pos+1);
      ++pos;
    }
  }

All references to RSS elements that are not yet used in this applet have been removed.

More code...

http://www.internet.com



JupiterOnlineMedia

internet.comearthweb.comDevx.commediabistro.comGraphics.com

Search:

Jupitermedia Corporation has two divisions: Jupiterimages and JupiterOnlineMedia

Jupitermedia Corporate Info


Legal Notices, Licensing, Reprints, & Permissions, Privacy Policy.

Advertise | Newsletters | Tech Jobs | Shopping | E-mail Offers

Solutions
Whitepapers and eBooks
IBM Whitepaper: Innovative Collaboration to Advance Your Business
Internet.com eBook: Real Life Rails
Avaya Article: Call Control XML - Powerful, Standards-Based Call Control
Internet.com eBook: The Pros and Cons of Outsourcing
Go Parallel Article: Scalable Parallelism with Intel(R) Threading Building Blocks
Internet.com eBook: Best Practices for Developing a Web Site
IBM CXO Whitepaper: The 2008 Global CEO Study "The Enterprise of the Future"
Avaya Article: Call Control XML in Action - A CCXML Auto Attendant
Go Parallel Article: James Reinders on the Intel Parallel Studio Beta Program
IBM CXO Whitepaper: Unlocking the DNA of the Adaptable Workforce--The Global Human Capital Study 2008
Adobe Acrobat Connect Pro: Web Conferencing and eLearning Whitepapers
Go Parallel Article: Getting Started with TBB on Windows
HP eBook: Storage Networking , Part 1
MORE WHITEPAPERS, EBOOKS, AND ARTICLES
Webcasts
Go Parallel Video: Intel(R) Threading Building Blocks: A New Method for Threading in C++
HP Video: Is Your Data Center Ready for a Real World Disaster?
Microsoft Partner Portal Video: Microsoft Gold Certified Partners Build Successful Practices
HP On Demand Webcast: Virtualization in Action
Go Parallel Video: Performance and Threading Tools for Game Developers
Rackspace Hosting Center: Customer Videos
Intel vPro Developer Virtual Bootcamp
HP Disaster-Proof Solutions eSeminar
HP On Demand Webcast: Discover the Benefits of Virtualization
MORE WEBCASTS, PODCASTS, AND VIDEOS
Downloads and eKits
Microsoft Download: Silverlight 2 Software Development Kit Beta 2
30-Day Trial: SPAMfighter Exchange Module
Red Gate Download: SQL Toolbelt
Iron Speed Designer Application Generator
Microsoft Download: Silverlight 2 Beta 2 Runtime
MORE DOWNLOADS, EKITS, AND FREE TRIALS
Tutorials and Demos
IBM IT Innovation Article: Green Servers Provide a Competitive Advantage
Microsoft Article: Expression Web 2 for PHP Developers--Simplify Your PHP Applications
Featured Algorithm: Intel Threading Building Blocks - parallel_reduce
MORE TUTORIALS, DEMOS AND STEP-BY-STEP GUIDES
webref The latest from WebReference.com Browse >
Controllers: Programming Application Logic - Part 2 · How to Use JavaScript to Validate Form Data · Controllers: Programming Application Logic
Sitemap · Experts · Tools · Services · Email a Colleague · Contact FREE Newsletters 
 The latest from internet.com
Sprint Launches Mobile WiMAX Network · Albatron Downsizes with the KI780G Mini-ITX Motherboard · Can't Find a Wi-Fi Network? Make Your Own.

Produced by Michael Claßen
All Rights Reserved. Legal Notices.

URL: http://www.webreference.com/xml/column26/index.html
Created: Dec 15, 2000
Revised: Dec 15, 2000