XSLT, mis teeb valmis meie XML-i kasutades koordinaatide XML-i ja EMHI reaalaja XML-i
From ICO wiki
Jump to navigationJump to search
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="/">
<!-- XML dokumendid muutujatena-->
<xsl:variable name="emhi" select="document('http://www.emhi.ee/ilma_andmed/xml/observations.php')"/>
<xsl:variable name="gps" select="document('jaamad_koordinaadid.xml')"/>
<!-- andmete lugemise aeg-->
<jaamad>
<xsl:attribute name="aeg">
<xsl:value-of select="$emhi//@timestamp"/>
</xsl:attribute>
<xsl:for-each select="$emhi//station">
<!-- teeme muutuja, mis jätab meelde jaama nime -->
<xsl:variable name="jnimi" select="name"></xsl:variable>
<jaam>
<!-- jaamale külge kood atribuudina-->
<xsl:attribute name="wmocode">
<xsl:value-of select="wmocode"/>
</xsl:attribute>
<nimi>
<xsl:value-of select="name"/>
</nimi>
<asukoht>
<laius>
<xsl:attribute name="kraad">
<xsl:value-of select="number($gps//jaam[contains(nimi,$jnimi)]/asukoht/laius/kraad)"/>
</xsl:attribute>
<xsl:attribute name="minut">
<xsl:value-of select="number($gps//jaam[contains(nimi,$jnimi)]/asukoht/laius/minut)"/>
</xsl:attribute>
<xsl:attribute name="sekund">
<xsl:value-of select="number($gps//jaam[contains(nimi,$jnimi)]/asukoht/laius/sekund)"/>
</xsl:attribute>
</laius>
<pikkus>
<xsl:attribute name="kraad">
<xsl:value-of select="number($gps//jaam[contains(nimi,$jnimi)]/asukoht/pikkus/kraad)"/>
</xsl:attribute>
<xsl:attribute name="minut">
<xsl:value-of select="number($gps//jaam[contains(nimi,$jnimi)]/asukoht/pikkus/minut)"/>
</xsl:attribute>
<xsl:attribute name="sekund">
<xsl:value-of select="number($gps//jaam[contains(nimi,$jnimi)]/asukoht/pikkus/sekund)"/>
</xsl:attribute>
</pikkus>
</asukoht>
<ilm>
<temperatuur>
<xsl:value-of select="number(airtemperature)"/>
</temperatuur>
<niiskus>
<xsl:value-of select="number(relativehumidity)" />
</niiskus>
<tuulekiirus>
<xsl:value-of select="number(windspeed)"/>
</tuulekiirus>
<maxtuulekiirus>
<xsl:value-of select="number(windspeedmax)"/>
</maxtuulekiirus>
</ilm>
</jaam>
</xsl:for-each>
</jaamad>
</xsl:template>
</xsl:stylesheet>