xsl-list
[Top] [All Lists]

Re: Define a key with cross reference

2005-01-21 10:20:10
  note that I have assumed ur context node to be B,
My context node is not necessarily B. Due to the
complex structure of my XML document, To access A, I
have to go through B and I have denined some keys
which can give me B(Let say the key is getB-from-C).
SO when I am in loop of getB-from-C, I want to find
all A elements those match id of C.
So I was wondering whether I could able to achive the
indirect cross reference using meunchian search.
I would appreciate if anybody can help give a look
into the problem.

regards,
Ranjan
--- Vasu Chakkera <vasucv(_at_)hotmail(_dot_)com> wrote:

Define key as Follows
<xsl:key match="/root/A"  name="A-with-B"
use="property/@id"/>
(Define key as a child of xsl:stylesheet element )


and Use the key like
 <xsl:value-of
select="key('A-with-B',property/@id)"/>
  so you send the property Id to the Key and you get
     "A"  node which
has the same Property /@id as the one u sent in to
the key..
  note that I have assumed ur context node to be B,
when I used the key in
the value-of select. make sure you use the right
path , depending on your
context node when using the key

 for example, if your template matches B nodes and
you use a xsl:for-each
select = "properties" in this template, then you
should use  <xsl:value-of
select="key('A-with-B',@id)"/>
Just a  note..


HTH
Vasu




----- Original Message ----- 
From: "Ranjan K. Baisak" <ranjanbaisak(_at_)yahoo(_dot_)com>
To: <xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com>
Sent: Friday, January 21, 2005 2:20 PM
Subject: [xsl] Define a key with cross reference


I would appreciate if anybody can help me to key
with
cross reference with related elements. The
structure
of my XML is :
<root>
<A name="A1">
<property id="1"/>
<property id="2"/>
</A>
<A name="A2">
<property id="1"/>
<property id="3"/>
</A>
<B name="B1">
<property id="1"/>
<property id="2"/>
</B>
<B name="B2">
<property id="1"/>
<property id="3"/>
</B>
</root>
I need to define a key which can give me all <A>
elements which are related to <B> related. The
relatioship is through id attribute of property.
E.g. for <B name="B2"><property id="1"/>, I should
get
<A name="A1">
<property id="1"/>
</A>
<A name="A2">
<property id="1"/>
</A>.

regards,
Ranjan



__________________________________
Do you Yahoo!?
The all-new My Yahoo! - Get yours free!
http://my.yahoo.com





--~------------------------------------------------------------------
XSL-List info and archive: 
http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to:
http://lists.mulberrytech.com/xsl-list/
or e-mail:
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--




--~------------------------------------------------------------------
XSL-List info and archive: 
http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to:
http://lists.mulberrytech.com/xsl-list/
or e-mail:
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--





                
__________________________________ 
Do you Yahoo!? 
Yahoo! Mail - now with 250MB free storage. Learn more.
http://info.mail.yahoo.com/mail_250

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--



<Prev in Thread] Current Thread [Next in Thread>