Så här i valtider presenteras mycket statistik och diagram på kors och tvärs. Om man vill göra egna sammanställningar finns alla data publicerade på internet i form av XML-filer, som ju kan importeras i FileMaker. Inte direkt, men med lite konvertering i form av en XSLT.
FileMaker kan importera XML-filer i en viss syntax, t.ex. FileMakers egen grammatik FMPXMLRESULT. XML-filer i andra format kan konverteras till denna grammatik med hjälp av en XSLT. Det är ett slags program som går genom XML-filen och omvandlar den enligt givna regler.
XML-filerna hittar du på http://www.val.se/val/val2006/valnatt/xml/index.html och en enkel XSLT för att konvertera uppgifter om alla giltiga röster till FileMaker kan se ut så här:
<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.filemaker.com/fmpxmlresult"> <xsl:template match="/"> <FMPXMLRESULT xmlns="http://www.filemaker.com/fmpxmlresult"> <ERRORCODE>0</ERRORCODE> <PRODUCT BUILD="" NAME="" VERSION=""/> <DATABASE DATEFORMAT="M/d/yyyy" LAYOUT="" NAME="" RECORDS="{count(/*/*)}" TIMEFORMAT="h:mm:ss a"/> <xsl:call-template name="METADATA"/> </FMPXMLRESULT> </xsl:template> <xsl:template name="METADATA" match="//GILTIGA[1]"> <METADATA> <FIELD> <xsl:attribute name="EMPTYOK">YES</xsl:attribute> <xsl:attribute name="MAXREPEAT">1</xsl:attribute> <xsl:attribute name="NAME">KOD</xsl:attribute> <xsl:attribute name="TYPE">TEXT</xsl:attribute> </FIELD> <FIELD> <xsl:attribute name="EMPTYOK">YES</xsl:attribute> <xsl:attribute name="MAXREPEAT">1</xsl:attribute> <xsl:attribute name="NAME">NAMN</xsl:attribute> <xsl:attribute name="TYPE">TEXT</xsl:attribute> </FIELD> <FIELD> <xsl:attribute name="EMPTYOK">YES</xsl:attribute> <xsl:attribute name="MAXREPEAT">1</xsl:attribute> <xsl:attribute name="NAME">PARTI</xsl:attribute> <xsl:attribute name="TYPE">TEXT</xsl:attribute> </FIELD> <FIELD> <xsl:attribute name="EMPTYOK">YES</xsl:attribute> <xsl:attribute name="MAXREPEAT">1</xsl:attribute> <xsl:attribute name="NAME">RÖSTER</xsl:attribute> <xsl:attribute name="TYPE">TEXT</xsl:attribute> </FIELD> <FIELD> <xsl:attribute name="EMPTYOK">YES</xsl:attribute> <xsl:attribute name="MAXREPEAT">1</xsl:attribute> <xsl:attribute name="NAME">RÖSTER_FGVAL</xsl:attribute> <xsl:attribute name="TYPE">TEXT</xsl:attribute> </FIELD> <FIELD> <xsl:attribute name="EMPTYOK">YES</xsl:attribute> <xsl:attribute name="MAXREPEAT">1</xsl:attribute> <xsl:attribute name="NAME">PROCENT</xsl:attribute> <xsl:attribute name="TYPE">TEXT</xsl:attribute> </FIELD> <FIELD> <xsl:attribute name="EMPTYOK">YES</xsl:attribute> <xsl:attribute name="MAXREPEAT">1</xsl:attribute> <xsl:attribute name="NAME">PROCENT_FGVAL</xsl:attribute> <xsl:attribute name="TYPE">TEXT</xsl:attribute> </FIELD> <FIELD> <xsl:attribute name="EMPTYOK">YES</xsl:attribute> <xsl:attribute name="MAXREPEAT">1</xsl:attribute> <xsl:attribute name="NAME">PROCENT_ÄNDRING</xsl:attribute> <xsl:attribute name="TYPE">TEXT</xsl:attribute> </FIELD> </METADATA> <xsl:call-template name="RESULTSET"/> </xsl:template> <xsl:template name="RESULTSET" match="//GILTIGA"> <RESULTSET> <xsl:attribute name="FOUND"> <xsl:value-of select="count(//GILTIGA)"/> </xsl:attribute> <xsl:for-each select="//GILTIGA"> <ROW> <xsl:attribute name="MODID">0 </xsl:attribute> <xsl:attribute name="RECORDID">0 </xsl:attribute> <COL> <DATA> <xsl:value-of select="../@KOD"/> </DATA> </COL> <COL> <DATA> <xsl:value-of select="../@NAMN"/> </DATA> </COL> <xsl:for-each select="@*"> <COL> <DATA> <xsl:value-of select="."/> </DATA> </COL> </xsl:for-each> </ROW> </xsl:for-each> </RESULTSET> </xsl:template> </xsl:stylesheet>
Först definieras FileMakers datumformat mm, sedan alla fält som ska läsas och sedan allt innehåll. Endast data i taggarna GILTIGA tas med. XSLT-programmet måste alltså utökas för att inkludera all information från XML-filerna. Detta överlämnas till läsaren:)
XSLT-filen finns på adressen http://www.mallverkstan.se/valresultat.xslt.
Skapa ett nytt FileMaker-register (i version 6, 7 eller 8/8.5), importera från XML-källan (ange adress enligt ovan) med XSLT-fil enligt adress ovan.
Sen är det fritt fram att göra alla möjliga sammanställningar av data i FileMaker, om det nu är något diagram som saknas?