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

RE: how to select nodes based on attribute values

Subject: RE: how to select nodes based on attribute values
From: sara.mitchell@xxxxxxxxx
Date: Thu, 5 Oct 2000 19:49:41 -0400
xsl select node by attribute
It depends to some extent on whether your 
element_id is defined as type ID in the DTD and 
pick_id is defined as type IDREF in the DTD. 
If they are, this template should work: 

<xsl:template match="b">
<!-- whatever you need to do first -->
 <xsl:apply-templates select="id(@pick_id)"/>
<!-- whatever you need to do later -->
</xsl:template>

The id() function looks for the single element with 
an attribute of type ID that has a value equal to 
what's inside the parens -- thus it's looking for an element
with an attribute that matches the value of pick_id. 

If you're DTD is not set up this way, you can do it
slightly differently.

<xsl:template match="b">
<xsl:variable name="matchto" select="@pick_id"/>
 <xsl:apply-templates select="//*[@element_id=$matchto]"/>
</xsl:template>

This one uses '//*' to search the entire document tree for any
element (the name is not important) that has an element_id
attribute with a value matching pick_id. This method is not 
so efficient :-) And someone else may come up with a better way 
(using keys perhaps?). But this should work. 

Sara
> -----Original Message-----
> From: Archie Russell [mailto:archier@xxxxxxxxxxxxxxx]
> Sent: Thursday, October 05, 2000 3:50 PM
> To: 'XSL-List@xxxxxxxxxxxxxxxx'
> Subject: how to select nodes based on attribute values
> 
> 
> 
> is there a way to select a node based on attribute value 
> matching attribute
> value in another node?
> 
> example
> 
> <?xml version="1.0" encoding="UTF-8"?>
> <xxx>
> <a element_id="1" name="xxx"/>
> <a element_id="2" name="yyy"/>
> <b pick_id="1"/>
> </xxx>
> 
> i want to select all 'a' elements that have element_id 
> matching the value of
> 'b's pick_id (my context is being "in" b)
> i've tried [] but i can't see how to refer to the attributes 
> of "a" and "b"
> simultaneously.
> 
> thanks for any help,
> archie
> 
> archie russell
> doubletwist.com
> 510-587-5766
> 
> 
>  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.