Hi Seth,
Thanks for the source files. I just managed to get a first shot of the
stylesheet done.
All elements in the "dc", "sy" and "admin" prefixed namespaces are
copied as they are.
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://purl.org/rss/1.0/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
xmlns:admin="http://webns.net/mvcb/">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="rss">
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<xsl:apply-templates select="channel"/>
<xsl:apply-templates select="channel/image"/>
<xsl:apply-templates select="channel/item"/>
<xsl:apply-templates
select="channel/textinput"/>
</rdf:RDF>
</xsl:template>
<xsl:template match="channel">
<channel rdf:about="{link}">
<xsl:apply-templates select="title | description
| link"/>
<xsl:copy-of select="dc:* | sy:* | admin:*"/>
<xsl:apply-templates select="image"
mode="channel"/>
<items>
<rdf:Seq>
<xsl:for-each select="item">
<rdf:li>
<xsl:attribute
name="rdf:resource">
<xsl:value-of select="link"/>
</xsl:attribute>
</rdf:li>
</xsl:for-each>
</rdf:Seq>
</items>
<textinput>
<xsl:value-of select="textinput"/>
</textinput>
</channel>
</xsl:template>
<xsl:template match="channel/image">
<image>
<xsl:attribute name="rdf:about">
<xsl:value-of select="url"/>
</xsl:attribute>
<xsl:apply-templates select="title"/>
<xsl:apply-templates select="link"/>
<url>
<xsl:value-of select="image/url"/>
</url>
</image>
</xsl:template>
<xsl:template match="channel/image" mode="channel">
<image rdf:resource="{image/url}"/>
</xsl:template>
<xsl:template match="channel/item">
<item>
<xsl:attribute name="rdf:about">
<xsl:value-of select="link"/>
</xsl:attribute>
<xsl:apply-templates select="title"/>
<xsl:apply-templates select="link"/>
<xsl:apply-templates select="description"/>
<xsl:copy-of select="dc:* | sy:* | admin:*"/>
</item>
</xsl:template>
<xsl:template match="channel/textinput">
<textinput>
<xsl:attribute name="rdf:about">
<xsl:value-of select="url"/>
</xsl:attribute>
<xsl:apply-templates select="title"/>
<xsl:apply-templates select="description"/>
<xsl:apply-templates select="name"/>
<xsl:apply-templates select="link"/>
</textinput>
</xsl:template>
<xsl:template match="title | description | link | name">
<xsl:element name="{local-name()}"
namespace="http://purl.org/rss/1.0/">
<xsl:apply-templates/>
</xsl:element>
</xsl:template>
</xsl:stylesheet>
Just try it out :)
best regards,
Roman
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--