Subject: Re: [xsl] Keeping track of parents From: "Anthony E." <apwebdesign@xxxxxxxxx> Date: Fri, 13 Jul 2001 16:07:10 -0700 (PDT) |
> 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@xxxxxxxxxxxx> 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
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] Keeping track of parents, Michael Kay | Thread | Re: [xsl] Keeping track of parents, Christian Cäsar |
Re: [xsl] Background color problem , Kevin Nardi | Date | RE: [xsl] Re:, Chris Bayes |
Month |