[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
RE: [xsl] listing unique attributes
Subject: RE: [xsl] listing unique attributes From: Américo Albuquerque <aalbuquerque@xxxxxxxxxxxxxxxx> Date: Tue, 14 Jan 2003 16:46:52 -0000 |
Hi Zack. This is a group problem. You want to group by section and by @who. These templates gives the result you want. <!-- this key gets all quotes grouped by section and @who --> <xsl:key name="quotes" match="quote" use="concat(generate-id(ancestor::section),'-',@who)"/> <xsl:template match="section"> <span>Section <xsl:value-of select="position()"/></span><br/><!-- just displaying the current section --> <xsl:text>-------------------------------------------------------------- ------</xsl:text><br/> <xsl:apply-templates select=".//quote[generate-id()=generate-id(key('quotes',concat(generate- id(ancestor::section),'-',@who)))]"/><!-- this will get the diferent quotes of this section --> <br/> <xsl:text>-------------------------------------------------------------- ------</xsl:text><br/> </xsl:template> <xsl:template match="quote"> <xsl:if test="position()>1"> <xsl:text>, </xsl:text> </xsl:if> <a href="quotes/{@who}.html"><xsl:value-of select="@who"/></a> </xsl:template> Hope this helps you. -----Original Message----- From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx [mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of Zack Brown Sent: terça-feira, 14 de Janeiro de 2003 13:54 To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx Subject: [xsl] listing unique attributes Hi folks, I'm having a problem creating a list of items from a set of items within a given tag. I have a file that looks like this: -------------------------------------------------------------------- <?xml version="1.0" ?> <kc> <section> <p>some text <quote who="person A">more text</quote> more text <quote who="person B">more text</quote> and more.</p> <quote who="person A"> <p>text</p> </quote> <p>text <quote who="person B">more text</quote></p> <p> <ul> <li>text <quote who="person C">text</quote></li> </ul> </p> </section> <section> <quote who="person C"></quote> </section> </kc> -------------------------------------------------------------------- in other words, within a <section> tag, there may be <quote> tags by themselves, or <quote> tags nested within other tags. The "who" attribute of a quote tag is a person's name. "who" attributes may repeat in a given section. I have an xslt recipe that looks like this: -------------------------------------------------------------------- <xsl:template match="kc/section" mode="full"> <xsl:if test=".//quote"> Quoted: <xsl:for-each select=".//@who[not(following-sibling::quote/@who=.)]"> <a href="quotes/{.}.html"><xsl:value-of select="."/></a> <xsl:if test="not(position() = last())">, </xsl:if> </xsl:for-each> </xsl:if> </xsl:template> -------------------------------------------------------------------- What I would like is for this recipe to produce the following output when applied to the first <section> in the file above: -------------------------------------------------------------------- <a href="quotes/person A.html">person A</a>, <a href="quotes/person B.html">person B</a>, <a href="quotes/person C.html">person C</a> -------------------------------------------------------------------- and when applied to the second <section> in the file above: -------------------------------------------------------------------- <a href="quotes/person C.html">person C</a> -------------------------------------------------------------------- In other words, each person should only be listed once for a given section, no matter how many times they appear in that section. But I can't seem to make it go somehow. Could someone please give me a hand? Many thanks, Zack -- Zack Brown XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] listing unique attributes, Zack Brown | Thread | Re: [xsl] listing unique attributes, Zack Brown |
Re: [xsl] the fo:block thing, J.Pietschmann | Date | Re: [xsl] block-container, with pos, G. Ken Holman |
Month |
Keywords