Subject: RE: [xsl] checking if an element starts-with a certain string using keys From: <Jarno.Elovirta@xxxxxxxxx> Date: Mon, 14 Feb 2005 11:08:24 +0200 |
Hi, > I got a problem with defining my keys right. I got a separate > XML file > where I want to lookup things according to a code. The XML structure > file looks as follows: > > <fields> > <field> > <code>PYTT/010</code> > <element>foo</element> > <element>bar</element> > </field> > <field> > <code>PYTT/020</code> > <element>bar</element> > </field> > </fields> > > In the main XML file the codes contain more numbers for example: > <org code="PYTT/010/030/040"/> > > I want to access the first file using keys. I already managed > to access > using a for-each and this works fine but too slow. Define key <xsl:key name="field" match="field" use="code"/> > The code looks like this: > <xsl:variable name="code" select="@code"/> > <xsl:for-each select="document($structure-doc)"> > <xsl:for-each select="fields/field[starts-with($code, > code)] "> Here use <xsl:for-each select="key('field', substring($code, 0, 9))"> or <xsl:for-each select="key('field', concat(substring-before($code, '/'), '/', substring-before(substring-after($code, '/'), '/')))"> I.e. you can't use starts-with, you use the equality operator for key lookups. Cheers, Jarno - Madam Zu: August 2003 Part 2
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] checking if an element starts, Harm Kok | Thread | Re: [xsl] checking if an element st, Harm Kok |
[xsl] checking if an element starts, Harm Kok | Date | RE: [xsl] checking if an element st, tom . kirkpatrick |
Month |