Andrew Cooke | Contents | Latest | Previous | Next

XSL Feed Filtering

From: "andrew cooke" <andrew@...>

Date: Tue, 10 Jan 2006 17:12:04 -0300 (CLST)

Over at AskMe - http://ask.metafilter.com/mefi/30537 - they're talking
about filtering feeds (RSS/Atom).

The general solution is to use XSL, which rewrites XML documents.  For
example, if I place this XSL

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="2.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
 xmlns:dc="http://purl.org/dc/elements/1.1/">
 <xsl:template match="node()|@*">
  <xsl:copy>
   <xsl:apply-templates select="@*"/>
   <xsl:apply-templates/>
  </xsl:copy>
 </xsl:template>
 <xsl:template match="item[./dc:creator/text()='Sean']"/>
</xsl:stylesheet>

in a file called drop.xsl then

wget http://cosmicvariance.com/feed
saxon feed drop.xsl

will remove all items written by Sean (sorry dude - first name in the feed).

More generally, everything except the line
 <xsl:template match="item[./dc:creator/text()='Sean']"/>
in the XSL above is just a basic copy.  That extra line takes "item"
elemnts that have a "cd:creator" child element with a text value of "Sean"
and drops them.

More exactly, it does nothing, replacing the general copy rule defined
earlier for those elements.  Other elements, which don't match that
specific rule, continue to be copied by the earlier, more generic rule.

(Posting here instead of AskMe because of the stupid Mefi formatting
issues...)

Andrew

Indentation...

From: "andrew cooke" <andrew@...>

Date: Tue, 10 Jan 2006 18:02:45 -0300 (CLST)

so
 i
  think
   i
  just
 fixed
indentation (IFS....)

CosmicVariance

From: "andrew cooke" <andrew@...>

Date: Tue, 10 Jan 2006 18:39:05 -0300 (CLST)

The blog in question is pretty good.  Current running feature - what's the
best physics paper ever?  Does Principia count, I wonder?

http://cosmicvariance.com/

Comment on this post


Bookmarkz