probleem met xpath in xslt ! dringend

Status
Niet open voor verdere reacties.

Vinny2110

Nieuwe gebruiker
Lid geworden
22 mei 2012
Berichten
2
Hallo

Ben mij net aan het bezighouden met xml maar heb volgend probleem:

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>

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:
<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>

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..

Kan iemand mij hier een oplossing op geven, het is nogal redelijk dringend.

alvast bedankt ! :cool:
 
Oké ben er half en half mee weg , maar ben er nog niet hellemaal door. Ik ben al tot het volgende bekomen:

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>

hij loopt er nu hellemaal door zonder foutmeldingen, maar toch blijft de tekst in tekstblocken leeg.. als iemand mij hier mee zou kunnen helpen ?

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>
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan