File: opml2xoxo.xsl

package info (click to toggle)
virtuoso-opensource 7.2.5.1%2Bdfsg1-0.3
  • links: PTS, VCS
  • area: main
  • in suites:
  • size: 285,240 kB
  • sloc: ansic: 641,220; sql: 490,413; xml: 269,570; java: 83,893; javascript: 79,900; cpp: 36,927; sh: 31,653; cs: 25,702; php: 12,690; yacc: 10,227; lex: 7,601; makefile: 7,129; jsp: 4,523; awk: 1,697; perl: 1,013; ruby: 1,003; python: 326
file content (70 lines) | stat: -rw-r--r-- 1,654 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
<?xml version="1.0" encoding="UTF-8"?>
<!-- $Id$  -->
<!--
Copyright Uche Ogbuji 2005
-->
<xsl:stylesheet version="1.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  xmlns="http://www.w3.org/1999/xhtml"
  xmlns:xhtml="http://www.w3.org/1999/xhtml"
  exclude-result-prefixes="xhtml">

  <xsl:output indent="yes" method="xml"/>
  <xsl:strip-space elements="*"/>

  <xsl:template match="*"/><!-- Ignore unknown elements -->

  <xsl:template match="opml">
    <html>
      <head>
	<title><xsl:value-of select="head/title"/></title>
      </head>
      <body>
	<h1><xsl:value-of select="head/title"/></h1>
	<ol class="xoxo">
	  <xsl:apply-templates/>
	</ol>
      </body>
    </html>
  </xsl:template>

  <xsl:template match="body">
    <xsl:apply-templates/>
  </xsl:template>

  <xsl:template match="outline[outline[@url|@xmlUrl]]">
    <!-- A "folder" -->
    <li>
      <p><xsl:value-of select="@text|@title"/></p>
      <ol>
	<xsl:apply-templates/>
      </ol>
    </li>
  </xsl:template>

  <xsl:template match="outline">
    <li>
      <ul>
	<!-- Try to represent the chaotic "rules" of OPML -->
	<xsl:choose>
	  <xsl:when test="@type='rss'">
	    <li>
	      <a href="{@url|@xmlUrl}" type="webfeed"><xsl:value-of select="@text|@title"/></a>
	    </li>
	  </xsl:when>
	  <xsl:when test="@type='link'">
	    <li>
	      <a href="{@url}" type="webfeed"><xsl:value-of select="@text|@title"/></a>
	    </li>
	  </xsl:when>
	</xsl:choose>
	<xsl:if test="@htmlUrl">
	  <li>
	    <a href="{@htmlUrl}" type="webfeed"><xsl:value-of select="@text|@title"/> [content site]</a>
	  </li>
	</xsl:if>
      </ul>
    </li>
  </xsl:template>

</xsl:stylesheet>