This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: Keeping track of parents
- To: xsl-list at lists dot mulberrytech dot com
- Subject: Re: [xsl] Keeping track of parents
- From: "Anthony E." <apwebdesign at yahoo dot com>
- Date: Fri, 13 Jul 2001 16:07:10 -0700 (PDT)
- Reply-To: xsl-list at lists dot mulberrytech dot com
> Most of it I can generate, but how can I fill the
> parentid? If there is no
> ancestor-element named <somenode> then the parent_id
> should be 0, else the
> parent_id should be the group_id of the ancestor.
someone can probably better answer this than me, but i
had a similar situation and came up with this:
<xsl:template match="somenode">
<xsl:choose>
<xsl:when test="ancestor::somenode">
<xsl:variable name="parent_id"
select="parent::somenode[ancestor::somenode]/@id"/>
</xsl:when>
<xsl:otherwise>
<xsl:variable name="parent_id" select="'0'"/>
</xsl:otherwise>
</xsl:choose>
<!-- print to test $parent_id -->
parent_id = <xsl:value-of select="$parent_id"/>
</xsl:template>
--- Christian Cäsar <caesar@mpdigital.de> wrote:
> Hi there,
>
> I'm a newbie, so please be patient with me if I
> cannot explain my problem
> as I should. I am quite stumped on this.
>
> This is my problem:
>
> I have an XML-File with a structure like this
> (simplified):
>
> <somenode id="1">
> <more_elements/>
> <somenode id="2">
> <more_elements/>
> <somenode id="3">
> <more_elements/>
> </somenode>
> <somenode id="4">
> <more_elements/>
> </somenode>
> </somenode>
>
> That is, the element <somenode> can have children
> that are also called
> <somenode>.
>
> My result xml should look like this:
>
> <structure>
> <group_name
> value="some_value_from_more_elements"/>
> <group_id value="some_unique_id_for_somenode"/>
> <parent_id value="group_id_of_somenodes_parent"/>
> </structure>
> <structure>
> <group_name
> value="some_value_from_more_elements"/>
> <group_id value="some_unique_id"/>
> <parent_id value="group_id_of_somenodes_parent"/>
> </structure>
> <structure>
> <group_name
> value="some_value_from_more_elements"/>
> <group_id value="some_unique_id"/>
> <parent_id value="group_id_of_somenodes_parent"/>
> </structure>
> <structure>
> <group_name
> value="some_value_from_more_elements"/>
> <group_id value="some_unique_id"/>
> <parent_id value="group_id_of_somenodes_parent"/>
> </structure>
>
> Most of it I can generate, but how can I fill the
> parentid? If there is no
> ancestor-element named <somenode> then the parent_id
> should be 0, else the
> parent_id should be the group_id of the ancestor.
>
> If it matters: I'm using xalan.
>
> Thanks for helping me,
> Christian
>
> XSL-List info and archive:
> http://www.mulberrytech.com/xsl/xsl-list
>
__________________________________________________
Do You Yahoo!?
Get personalized email addresses from Yahoo! Mail
http://personal.mail.yahoo.com/
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list