Hi again,
still working on my xslt program and I ran into another problem. There is a file which a contains the following structure:
<key>1</key>
<dict>
...
</dict>
<key>2</key>
<dict>
..
</dict>
When I am in a "dict" tag I want to get the value from the key before it, because they belong to eachother.. (don't ask me why it's constructed like this, wasn't my work) Now I wrote the following code which should do the job:
<xsl:template match="plist/dict">
<xsl:element name="playlist">
<xsl:for-each select="child::dict/dict"> <xsl:call-template name="track"/> </xsl:for-each> </xsl:element> </xsl:template>
<xsl:template name="track">
<xsl:element name="track">
<xsl:variable name="pos" select="position"/> <xsl:apply-templates select="preceding-sibling::key[position $pos]"/> <xsl:for-each select="child::key"> <xsl:call-template name="key_value"/> </xsl:for-each> </xsl:element> </xsl:template>
Only, once pos has gained a value, it doesn't seem to get a new value in the next round of the "for-each" loop.. is this a bug or am I making a mistake in my thinking? Any help would be appreciated!
Thanks in advance,
Yereth
still working on my xslt program and I ran into another problem. There is a file which a contains the following structure:
<key>1</key>
<dict>
...
</dict>
<key>2</key>
<dict>
..
</dict>
When I am in a "dict" tag I want to get the value from the key before it, because they belong to eachother.. (don't ask me why it's constructed like this, wasn't my work) Now I wrote the following code which should do the job:
<xsl:template match="plist/dict">
<xsl:element name="playlist">
<xsl:for-each select="child::dict/dict"> <xsl:call-template name="track"/> </xsl:for-each> </xsl:element> </xsl:template>
<xsl:template name="track">
<xsl:element name="track">
<xsl:variable name="pos" select="position"/> <xsl:apply-templates select="preceding-sibling::key[position $pos]"/> <xsl:for-each select="child::key"> <xsl:call-template name="key_value"/> </xsl:for-each> </xsl:element> </xsl:template>
Only, once pos has gained a value, it doesn't seem to get a new value in the next round of the "for-each" loop.. is this a bug or am I making a mistake in my thinking? Any help would be appreciated!
Thanks in advance,
Yereth