| Subject: Re: [xsl] How to define a xsl to display such a xml document... From: Jeni Tennison <jeni@xxxxxxxxxxxxxxxx> Date: Wed, 6 Mar 2002 10:14:22 +0000 | 
Hi Sjoy,
> Here, Group controls several Keyword, and the Members are
> corresponded to Keywords attribute id.
>
> I want to display all members of one group into one td of table. How
> can I do that?
First, I'd set up a key so that it's easy to retrieve the Keyword with
a particular id, from its id:
<xsl:key name="keywords" match="Keyword" use="@id" />
With that key defined, you can do:
  key('keywords', 1)
to get all the Keyword elements in the document whose id attribute has
the value '1'.
Then, for each Group:
  <xsl:for-each select="content/Groups/Group">
    ...
  </xsl:for-each>
You want to create a td:
  <xsl:for-each select="content/Groups/Group">
    <td>
      ...
    </td>
  </xsl:for-each>
In which you go through the Member elements one by one:
  <xsl:for-each select="content/Groups/Group">
    <td>
      <xsl:for-each select="Member">
        ...
      </xsl:for-each>
    </td>
  </xsl:for-each>
And get the value of the Keyword whose id is equal to the value of the
current Member:
  <xsl:for-each select="content/Groups/Group">
    <td>
      <xsl:for-each select="Member">
        <xsl:value-of select="key('keywords', .)" />
      </xsl:for-each>
    </td>
  </xsl:for-each>
You might want to put some extra HTML in there, but I hope that shows
the basic method.
  
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] How to define a xsl to displa, shenjun | Thread | [xsl] search condition, Laura Jenkins | 
| Re: [xsl] NEWLINES, Jeni Tennison | Date | Re: [xsl] search condition, shenjun | 
| Month |