xsl-list
[Top] [All Lists]

Re: Node Position & Relationship!

2005-02-11 07:30:40
Hi Adam,
  I'll try to answer your question in parts..

q1) to create an xsl if element that tests the current
node to see if it is a level 0 tree_node element.
Ans -
<xsl:if test="self::tree_node and
not(parent::tree_node)">

</xsl:if>
If you are at a given node, this if condition
evaluates true if the node is at level 0(i.e., if it
is a tree_node element, and it has no tree_node
parent)

In the XML you gave, this condition will be true for
<tree_node id="7" value="Test"> node..

q2) how can I find out if a particular node is a
child, ancestor or peer of any given node.
Ans - Suppose node X is the context node, and there is
another node Y ;
X is child of Y, if this condition is true
<xsl:if test="parent::Y">

</xsl:if>

Y is an ancestor of X, if this condition is true
<xsl:if test="ancestor::Y">

</xsl:if>

Y is peer of X(following or preceding sibling), if
this condition is true
<xsl:if test="(following-sibling::Y) or
(preceding-sibling::Y)">

</xsl:if>

Regards,
Mukul
  
--- Adam J Knight <adam(_at_)brightidea(_dot_)com(_dot_)au> wrote:

Given the following xml structure, I want to create
an xsl if element that
tests the current node to see if it is a level 0
tree_node element.

<?xml version="1.0"?>
<tree>
  <tree_node id="7" value="Test">
      <tree_node id="8" value="Test Sub"/>
      <tree_node id="9" value="Test Sub One">
          <tree_node id="10" value="Test Sub Two"/>
    </tree_node>
  </tree_node>
</tree>


Here is my attached, pretty sad!!!!!

<xsl:if test="{count(self::*)=1}">
        <xsl:apply-templates select="tree_node"/>
</xsl:if      

Can someone give me the correct way to achieve this.
Also how can I found out if a particular node is a
child, ancestor or peer 
Of any given node.

Thanks to anyone who response, muchly appreciated.

Cheers, 
Adam 
 
NB: "Pray as if everything depended upon God and
work as if everything
depended upon man."



                
__________________________________ 
Do you Yahoo!? 
Yahoo! Mail - Easier than ever with enhanced search. 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>
--~--