[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

RE: Re[2]: finding position() of an element in a diffe

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

xml:

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

xsl:

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

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

-John
-----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]:  finding position() of an element in a different
context

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
again:

<top>
    <visits>
          <visit id="visit1Name"/>
          <visit id="visit2Name"/>
    </visits>
    <formtypes>
        <formtype id="formtype1Name"/>
        <formtype id="formtype2Name"/>
    </visits>
    <forms>
        <form visit="visit1Name" formtype="formtype1Name"/>
        <form visit="visit1Name" formtype="formtype2Name"/>
        <form visit="visit2Name" formtype="formtype2Name"/>
    </forms>
</top>


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 =
  $visitID)]"/>

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

Is there a way to make this work?


--
groovy baby,
 Kevin                    mailto:xmldude@xxxxxxxxxxxxxxxx

++++++++++++ Cool music - http://mp3.com/marshan
++++++ Attitude Webzine - http://burieddreams.com/attitude



 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list



 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.