Hallo
Ben mij net aan het bezighouden met xml maar heb volgend probleem:
De bedoeling is dat ik van elke klinker de probability in een textblock kan weergeven. Het probleem is dat ik dit met een lus wil doen maar met xls kan je blijkbaar geen teller met 1 verhogen. Had al met een recursieve template gewerkt, dit ook zonder succes. Een kennis heeft me verteld dat ik position() hiervoor moest gebruiken maar krijg het nog altijd niet aan de praat. Ik heb al de volgende code:Code:<?xml version="1.0" encoding="UTF-8"?> <!-- Sorted frequencies for : CLASS Analysis : N_GRAM_CHARACTER1_DOCUMENT --> <n-grams-sorted tokens="109452" types="106" range="CLASS" analysis="N_GRAM_DOCUMENT"> <afrikaans> <klinkers> <n-gram probability="0.07563" frequency="8278" position="4">a</n-gram> <n-gram probability="0.16065" frequency="17584" position="1">e</n-gram> <n-gram probability="0.08135" frequency="8904" position="2">i</n-gram> <n-gram probability="0.05671" frequency="6207" position="7">o</n-gram> <n-gram probability="0.02292" frequency="2509" position="13">u</n-gram> </klinkers> </afrikaans> </n-grams-sorted>
Nu krijg ik wel 5 textblocken maar in elk staan nu alle probabilities van alle klinkers, maar het zou dus de probability van klinker 1 in de eerste textblock, probability van klinker 2 in de tweede textblock enz..Code:<xsl:template name="bereken-waarden"> <xsl:for-each select="//n-grams-sorted/afrikaans/klinkers/n-gram"> <xsl:call-template name="make-textblock"> <xsl:with-param name="text" select="/n-grams-sorted/afrikaans/klinkers/n-gram[position()]/@probability"/> <xsl:with-param name="canvas-top" select="250"/> <xsl:with-param name="canvas-left" select="760"/> <xsl:with-param name="fontsize" select="16"/> <xsl:with-param name="foreground" select="'Ivory'"/> </xsl:call-template> </xsl:for-each> </xsl:template>
Kan iemand mij hier een oplossing op geven, het is nogal redelijk dringend.
alvast bedankt !![]()
Oké ben er half en half mee weg , maar ben er nog niet hellemaal door. Ik ben al tot het volgende bekomen:
hij loopt er nu hellemaal door zonder foutmeldingen, maar toch blijft de tekst in tekstblocken leeg.. als iemand mij hier mee zou kunnen helpen ?Code:<xsl:template name="bereken-waarden"> <xsl:for-each select="//element/group"> <xsl:variable name="value"> <xsl:value-of select="."/> </xsl:variable> <xsl:variable name="kans" select="(//n-gram[. = $value]/@probability) * 100"/> <xsl:call-template name="make-textblock"> <xsl:with-param name="text"> <xsl:value-of select="round($kans)"/> </xsl:with-param> <xsl:with-param name="canvas-top" select="250"/> <xsl:with-param name="canvas-left" select="760"/> <xsl:with-param name="fontsize" select="16"/> <xsl:with-param name="foreground" select="'Ivory'"/> </xsl:call-template> </xsl:for-each> </xsl:template>
Mijn source xml ziet er als volgt uit nu:
Code:<root> <element taal="afrikaans"> <group type="klinkers"> <n-gram probability="0.07563" frequency="8278" position="4">a</n-gram> <n-gram probability="0.16065" frequency="17584" position="1">e</n-gram> <n-gram probability="0.08135" frequency="8904" position="2">i</n-gram> <n-gram probability="0.05671" frequency="6207" position="7">o</n-gram> <n-gram probability="0.02292" frequency="2509" position="13">u</n-gram> </group> <group type="paren"> <n-gram probability="0.1927" frequency="2708" position="2">e r</n-gram> <n-gram probability="0.1215" frequency="1323" position="12">e s</n-gram> <n-gram probability="0.1212" frequency="1319" position="13">e e</n-gram> <n-gram probability="0.113" frequency="1230" position="14">e l</n-gram> <n-gram probability="0.0958" frequency="1043" position="16">e t</n-gram> </group> </element> <element taal="nederlands"> <group type="klinkers"> <n-gram probability="0.15567" frequency="3446" position="1">e</n-gram> <n-gram probability="0.07842" frequency="1736" position="3">a</n-gram> <n-gram probability="0.05782" frequency="1280" position="6">o</n-gram> <n-gram probability="0.05367" frequency="1188" position="7">i</n-gram> <n-gram probability="0.01699" frequency="376" position="16">u</n-gram> </group> <group type="paren"> <n-gram probability="0.1922" frequency="532" position="2">e r</n-gram> <n-gram probability="0.1507" frequency="331" position="5">e e</n-gram> <n-gram probability="0.1362" frequency="299" position="11">e t</n-gram> <n-gram probability="0.133" frequency="292" position="12">e l</n-gram> <n-gram probability="0.061" frequency="134" position="35">e s</n-gram> </group> </element> <element taal="portugees"> <group type="klinkers"> <n-gram probability="0.10589" frequency="3857" position="1">a</n-gram> <n-gram probability="0.10259" frequency="3737" position="2">e</n-gram> <n-gram probability="0.09548" frequency="3478" position="3">o</n-gram> <n-gram probability="0.05908" frequency="2152" position="5">i</n-gram> <n-gram probability="0.03355" frequency="1222" position="11">u</n-gram> </group> <group type="paren"> <n-gram probability="0.0156" frequency="565" position="3">e s</n-gram> <n-gram probability="0.00884" frequency="320" position="20">e r</n-gram> <n-gram probability="0.00605" frequency="219" position="42">e l</n-gram> <n-gram probability="0.00326" frequency="118" position="92">e t</n-gram> <n-gram probability="0.00273" frequency="99" position="104">e e</n-gram> </group> </element> <element taal="spaans"> <group type="klinkers"> <n-gram probability="0.11165" frequency="5225" position="1">e</n-gram> <n-gram probability="0.10768" frequency="5039" position="2">a</n-gram> <n-gram probability="0.07257" frequency="3396" position="3">o</n-gram> <n-gram probability="0.06157" frequency="2881" position="6">i</n-gram> <n-gram probability="0.03646" frequency="1706" position="12">u</n-gram> </group> <group type="paren"> <n-gram probability="0.01716" frequency="799" position="3">e l</n-gram> <n-gram probability="0.01677" frequency="781" position="4">e s</n-gram> <n-gram probability="0.01233" frequency="574" position="8">e r</n-gram> <n-gram probability="0.00247" frequency="115" position="103">e e</n-gram> <n-gram probability="0.00198" frequency="92" position="115">e t</n-gram> </group> </element> </root>