← Prev in month ← Prev in thread

XPath predicate and context

From
Putman, Harold <>
To
"''" <>
Date
2003-12-22T15:43:27Z
ID
<>
Thread
XPath predicate and context
Is there any way to get information from the context of the current XPath
expression, and use that inside a predicate expression. For example, if I
have
<doc>
  <state id="OH">Ohio</state>
  <state id="PA">Pennsylvania</state>
  <home state="PA"/>
  <home state="OH"/>
</doc>             
I want to write an XPath expression that will give me the name of the state
assigned to the home element. Something like this works as long as long as
there is only one home: /doc/state[@id=/doc/home/@state]
But what I want to do is evaluate an XPath at any home node and get the
state name for that node. Something like:
/doc/state[@id=current()/@state]
Where current would be the context node when the XPath evaluation starts.
The problem is that current() is not a part of XPath... In XSLT I would do
this using a variable.
<xsl:variable name="state">
  <xsl:value-of select="@state"/>
</xsl:variable>
<xsl:value-of select="/doc/state[@id=$state]"/>
But, it seems like there should be a way to do this with XPath alone. Is
there a way?

Thanks,
Harold Putman
← Prev in month ← Prev in thread