!

Dette materialet blir ikke lenger vedlikeholdt. Du vil finne oppdatert materiale på siden: http://borres.hiof.no/wep/

XSLT
JSON
Børre Stenseth
XSL > XSLT > Olympiade >XML2JSON

Transformasjon fra XML til JSON

Hva
Demonstrerer en enkel XML -> JSON transformasjon og loading av JSON

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. Se også modulen JSON .

Vi lage en transformasjon som lage 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 http://www.it.hiof.no/~borres/dw/olymp/ol2json/index.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="jquery.js"> </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/ 14-03-2010

Aktuelle filer er sitert i teksten.

Vedlikehold
B. Stenseth, august 2011
( Velkommen ) XSL > XSLT > Olympiade >XML2JSON ( XML2RTF )