XPath selecting a node with some attribute value equals to some other node's attribute value [closed]

<grand id="grand">
  <parent>
    <child age="18" id="#not-grand"/>
    <child age="20" id="#grand"/> <!-- This is what I want to locate -->
  </parent>
</grand>

Can anybody tell me how to express for locating the second child?

This doesn't work...

"/grand/parent/child[@id=concat('#',/grand/@id)]/@age"

Thank you.


I'm sorry. The expression is OK. I found I got some problems in other area not the expression itself.


This XPath is specific to the code snippet you've provided. To select <child> with id as #grand you can write //child[@id='#grand'].

To get age //child[@id='#grand']/@age

Hope this helps


I think this is what you want:

/grand/parent/child[@id="#grand"]