XSLT
JSON
XSLT
Børre Stenseth
Olympiade >XML2JSON

Transformasjon fra XML til JSON

Hva

Vi forsøker å transformere de olympiske relutatene til JSON [1] . Deretter importerer vi og parser JSON-fila og bruker den til å legge ut resultatene som HTML.

Vi lage en transformasjon som lager et flatt format etter mønster av eksempelet reorganisering i modulen XML2XML

Transformasjonen er slik:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet  version="1.0"  
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text" 
    doctype-system="olympreorg.dtd" encoding="UTF-8"/>
 
<xsl:template match="/">
{"events":[
   <xsl:apply-templates select="/IOC/OlympicGame/event"/>
]}   
</xsl:template>
 
<xsl:template match="event">
   { "distanse":"<xsl:value-of select="@dist"/>",
     "place":"<xsl:value-of select="ancestor::OlympicGame/@place"/>",
     "year":"<xsl:value-of select="ancestor::OlympicGame/@year"/>",
     "athlets":[
     <xsl:apply-templates select="athlet">
     <xsl:sort select="result" data-type="number" order="ascending"/>
     </xsl:apply-templates>
     ]},
</xsl:template>
 
<xsl:template match="athlet">
{"name":"<xsl:apply-templates select="name"/>",
"nation":"<xsl:apply-templates select="nation"/>",
"result":"<xsl:apply-templates select="result"/>"},
</xsl:template>
 
</xsl:stylesheet>

Resultatet er en textfil som ser slik ut:

_jsonfil

Javascriptet som leser og parser denne fila ser slik ut:

_olymp.js

Resultatet blir slik:

Resultat https://borres.hiof.no/wep/xslt/ol/xml2json/demo.html

Dette er en svært enkel løsning uten noe forsøk på å sette stiler eller pen layout. HTML-fila som drar det hele er slik:

<!DOCTYPE HTML>
<html>
<head>
    <meta charset="UTF-8"/>    
    <title>Olympiade</title>    
    <script src="https://borres.hiof.no/resources/jslibs/jQ/jquery-min.js" type="text/javascript"> </script>
    <script src="olymp.js" > </script>
</head>
<body onload="initPage()">
    <h1>Olympiader</h1>
    <div id="resultholder"></div>
</body>
</html>
Referanser
  1. JSON (JavaScript Object Notation) json.org www.json.org/ 02-02-2014
Olympiade >XML2JSON