Subject: Re: [xsl] Navigating XML Using Attributes From: Jeni Tennison <jeni@xxxxxxxxxxxxxxxx> Date: Tue, 11 Feb 2003 22:20:33 +0000 |
Hi James, > To navigate the XML document, one must pull the Ids from element > <LevelA3> and return to the <Account> level to find the <LevelA3> > elements that reside in the document just below <Account>. Once the > appropriate <LevelA3> element is found, the XSL must find its way to > <LevelB2>, grab its Id, return to the top and find <LevelB2> below. > This continues until the data contained in <LevelC1> is found. For > example, the path to DataGamma is: Account/LevelA1/LevelA2/LevelA3 > Id="333"/LevelB1/LevelB2 Id="11"/LevelC1:DataGamma > > I assume I will have to use apply-templates again and again. What I > don't know is how to remember all the Ids in LevelA3, and below, so > I can find each of the cooresponding elements. Any suggestions? I don't really understand the problem about *remembering* the Ids in LevelA3. If you apply templates to all the LevelA3 elements then they will all be processed. I'd have something like: <xsl:template match="LevelA2"> ... <xsl:apply-templates select="LevelA3" /> ... </xsl:template> <xsl:template match="LevelA3"> <xsl:variable name="id" select="@Id" /> <xsl:apply-templates select="/Account/LevelA3[@Id = $id]" /> </xsl:template> <xsl:template match="LevelA3[node()]"> ... </xsl:template> I would also consider using a key to index the elements under the Account element by their Id attributes (and possibly by their name) so that you can access them quickly. Cheers, Jeni --- Jeni Tennison http://www.jenitennison.com/ XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] Navigating XML Using Attribut, Pilarski,James | Thread | RE: [xsl] Navigating XML Using Attr, Michael Semcheski |
Re: [xsl] Choosing different sorts, Jeni Tennison | Date | [xsl] replace 'NA' for empty string, Lee, Insoo |
Month |