[xsl] checking if an element starts-with a certain string using keys

Subject: [xsl] checking if an element starts-with a certain string using keys
From: Harm Kok <h.kok@xxxxxxxxxxxxxxx>
Date: Mon, 14 Feb 2005 09:29:47 +0100
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.

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 I can access all elements within the field that start with this code.
<xsl:for-each>
</xsl:for-each>


Does anybody know how I can use a key in the second for-each loop?

Harm

Current Thread