Peter
Peter

Reputation: 3

How to use XSLT to transform an XML feed?

Here's the XML:

<?xml version='1.0' encoding='UTF-8' standalone='yes' ?>
    <feed xmlns="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
        <title>Rated Images</title>
        <link rel="self" href="http://mirror/blog/?feed=photos&amp;lang=en" />
        <link rel="alternate" type="text/html" href="http://mirror/blog"/>
        <icon>http://mirror/avatars/sterling-adventures.jpg</icon>
        <subtitle>Just another WordPress site</subtitle>
        <updated>2012-03-20T09:50:48+00:00</updated>
        <generator uri="http://mirror/">Test</generator>
<entry>
    <title>Les Houches</title>
    <link rel='alternate' type='text/html' href='http://mirror/blog/2011/12/28/les-houches/' />
    <published>2011-12-28T11:29:29+00:00</published>
    <id>http://mirror/blog/wp-content/uploads/2011/12/IMG_8830.jpg</id>
    <updated>2011-12-28T11:29:29+00:00</updated>
    <content type='html'>
        &lt;p&gt;&lt;a href=&quot;http://mirror/blog/author/admin/&quot;&gt;admin&lt;/a&gt; posted a photo from Les Houches:&lt;/p&gt;
        &lt;p&gt;&lt;a href=&quot;http://mirror/blog/2011/12/28/les-houches/&quot; title=&quot;Les Houches&quot;&gt;&lt;img src=&quot;http://mirror/blog/wp-content/uploads/2011/12/IMG_8830.jpg&quot; width=&quot;138&quot; height=&quot;160&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
    </content>
    <author>
        <name>admin</name>
        <uri>http://mirror/blog/author/admin/</uri>
    </author>
    <link rel='enclosure' type='image/jpeg' href='http://mirror/blog/wp-content/uploads/2011/12/IMG_8830.jpg' />
</entry>
</feed>

And all I want to get back is the href attribute of the link element, everything else can be discarded. That is, each line of the out should be a link href...

Hope someone can help me build a suitable XSLT...

:-)

Upvotes: 0

Views: 777

Answers (1)

Chris Summers
Chris Summers

Reputation: 10163

Perhaps this will help

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fn="http://www.w3.org/2005/xpath-functions" xmlns:atom="http://www.w3.org/2005/Atom">
    <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
    <xsl:template match="/">
        <output>
        <xsl:for-each select="/atom:feed/atom:entry/atom:link">
            <xsl:value-of select="@href"/>
        </xsl:for-each>
        </output>
    </xsl:template>
</xsl:stylesheet>

Upvotes: 2

Related Questions