[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
[Recent Entries]
[Reply To This Message]
Re: checking if an element starts-with a certain strin
Subject: Re: checking if an element starts-with a certain string using keys
From: Harm Kok <h.kok@xxxxxxxxxxxxxxx>
Date: Mon, 14 Feb 2005 11:00:00 +0100
|
Jarno,
Thanks for the answer, it works partly. I forgot to tell that the code
in the structure file can also be longer: for example:
<field>
<code>PYTT/030/040</code>
<element/>
</field>
<field>
<code>PYTT/030/040/050</code>
<element/>
</field>
There should be a longest match. So the following element should match
the second field:
<org code="PYTT/030/040/050/060">
I think the expresion will be so complex that it will be quicker to do
the xsl-for each statement.
Regards,
Harm
Jarno.Elovirta@xxxxxxxxx wrote:
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
|
PURCHASE STYLUS STUDIO ONLINE TODAY!
Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!
Download The World's Best XML IDE!
Accelerate XML development with our award-winning XML IDE - Download a free trial today!
Subscribe in XML format
RSS 2.0 |
|
Atom 0.3 |
|
|