RE: Re[2]: [xsl] finding position() of an element in a different context

Subject: RE: Re[2]: [xsl] finding position() of an element in a different context
From: "John Wang" <jwang@xxxxxxxxxxx>
Date: Thu, 26 Apr 2001 12:36:27 -0500
Here is possible correction, I am not sure this is what you want.


<?xml version="1.0"?>
		<visit id="visit1Name"/>
		<visit id="visit2Name"/>
		<formtype id="formtype1Name"/>
		<formtype id="formtype2Name"/>
		<form visitID="visit1Name" formtypeID="formtype1Name">form1</form>
		<form visitID="visit1Name" formtypeID="formtype2Name">form2</form>
		<form visitID="visit2Name" formtypeID="formtype3Name">form3</form>


<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0"
	<xsl:output method="html"/>
	<xsl:variable name="formtypeID">formtype2Name</xsl:variable>
	<xsl:variable name="visitID">visit1Name</xsl:variable>
	<xsl:template match="/">
				<xsl:variable name="matchingForm" select="//forms/form[(@formtypeID =
$formtypeID) and (@visitID =   $visitID)]"/>
				<xsl:value-of select="$matchingForm"/>

This xsl will pick up one entry which is "form2"

-----Original Message-----
From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx
[mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx]On Behalf Of Kevin Burges
Sent: Wednesday, April 25, 2001 2:56 PM
To: Oliver Becker
Subject: Re[2]: [xsl] finding position() of an element in a different

Hi Oliver,

OB> Just count the preceding siblings:
OB> count($matchingForm/preceding-sibling::*)+1

they might not always be siblings, but I could probably just use
preceding:: to do the job.

I've remembered another part of the problem. Look at the structure

          <visit id="visit1Name"/>
          <visit id="visit2Name"/>
        <formtype id="formtype1Name"/>
        <formtype id="formtype2Name"/>
        <form visit="visit1Name" formtype="formtype1Name"/>
        <form visit="visit1Name" formtype="formtype2Name"/>
        <form visit="visit2Name" formtype="formtype2Name"/>

Am I not right in saying that if I am in the context of a <visit>
element, doing:

  <xsl:variable name="matchingForm"
  select="//forms/form[(@formtypeID = $formtypeID) and (@visitID =

will not work, because "//forms" is taken relative to the context
node? Certainly this seems to be happening, as no matches are

Is there a way to make this work?

groovy baby,
 Kevin                    mailto:xmldude@xxxxxxxxxxxxxxxx

++++++++++++ Cool music -
++++++ Attitude Webzine -

 XSL-List info and archive:

 XSL-List info and archive:

Current Thread