Re: [xsl] Return ancestor siblings based on Id

Subject: Re: [xsl] Return ancestor siblings based on Id
From: António Mota <amsmota@xxxxxxxxx>
Date: Fri, 18 Feb 2005 15:25:53 +0000
How about

//tree_node[@id=9]/ancestor::tree_node |
//tree_node[@id=9]following-sibling::tree_node |
//tree_node[@id=9]preceding-sibling::tree_node


On Sat, 19 Feb 2005 01:16:58 +1000, Adam J Knight
<adam@xxxxxxxxxxxxxxxxx> wrote:
> Hi guys,
> 
> Another chapter in this tragedy.
> 
> Question:
> 
> The expression '//tree_node[@id=9]/ancestor::tree_node' returns a nodeset
> containing node with id(7). I have verified this with xpath visualizer.
> 
> How do I return the ALL siblings of this node also.
> 
> The result being
> Node(id=7)
> Node(id=8) : sibling of Node(id=7)
> Node(id=9) : sibling of Node(id=7)
> Node(id=14) : sibling of Node(id=7)
> 
> HELP APPRECIATED!!!!
> 
> ALL TO0 FAMILIAR XML STRUCTURE:
> <tree>
>   <tree_node id="7" value="Test Level One A">
>     <tree_node id="8" value="Test Level Two A"/>
>     <tree_node id="9" value="Test Level Two B">
>       <tree_node id="11" value="Test Level Three B"/>
>       <tree_node id="10" value="Test Level Three A">
>         <tree_node id="12" value="Test Level Four A"/>
>         <tree_node id="13" value="Test Level Four B"/>
>       </tree_node>
>     </tree_node>
>     <tree_node id="14" value="Test Level Two C"/>
>   </tree_node>
> </tree>

Current Thread