File: xrd2json.xsl

package info (click to toggle)
virtuoso-opensource 6.1.6+dfsg2-4
  • links: PTS, VCS
  • area: main
  • in suites: bullseye, buster, sid, stretch
  • size: 260,992 kB
  • ctags: 125,220
  • sloc: ansic: 652,748; sql: 458,419; xml: 282,834; java: 61,031; sh: 40,031; cpp: 36,890; cs: 25,240; php: 12,692; yacc: 9,523; lex: 7,018; makefile: 6,157; jsp: 4,484; awk: 1,643; perl: 1,013; ruby: 1,003; python: 326
file content (21 lines) | stat: -rw-r--r-- 902 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?xml version="1.0" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="text" media-type="application/json"/>
  <xsl:variable name="uc">ABCDEFGHIJKLMNOPQRSTUVWXYZ</xsl:variable>
  <xsl:variable name="lc">abcdefghijklmnopqrstuvwxyz</xsl:variable>
    <xsl:template match="XRD">
{
  <xsl:apply-templates select="Subject|Host|Alias"/>
  "link": 
    [
      <xsl:for-each select="Link">
      {
        <xsl:for-each select="@*">"<xsl:value-of select="local-name(.)"/>": "<xsl:value-of select="."/>"<xsl:if test="position () != last ()">,
        </xsl:if></xsl:for-each>
      }<xsl:if test="position () != last ()">,</xsl:if>
      </xsl:for-each>
    ]
}
    </xsl:template>
    <xsl:template match="Subject|Host|Alias">"<xsl:value-of select="translate (local-name(.), $uc, $lc)"/>": "<xsl:value-of select="."/>",</xsl:template>
</xsl:stylesheet>