I think union (|) operator is the answer..
//tree_node[(_at_)id=9]/ancestor::tree_node |
//tree_node[(_at_)id=9]/preceding-sibling::* |
//tree_node[(_at_)id=9] |
//tree_node[(_at_)id=9]/following-sibling::*
Probably, this should also work (seems more efficient
also) -
//tree_node[(_at_)id=9]/(ancestor::tree_node |
preceding-sibling::* | self::* | following-sibling::*)
Regards,
Mukul
--- Adam J Knight <adam(_at_)brightidea(_dot_)com(_dot_)au> wrote:
Hi guys,
Another chapter in this tragedy.
Question:
The expression
'//tree_node[(_at_)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>
__________________________________
Do you Yahoo!?
Yahoo! Mail - Helps protect you from nasty viruses.
http://promotions.yahoo.com/new_mail
--~------------------------------------------------------------------
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>
--~--