Subject: Re: Total occurences and ordered display of XML elements
From: António Mota <amsmota@xxxxxxxxx>
Date: Sat, 17 Sep 2005 01:44:24 +0100
|
Viva.
Se eu percebesse alguma coisa de namespaces talvez te pudesse ajudar,
mas em 2 creio que deveria ser
<xsl:value-of
select='fn:count(//def:record[def:metadata//dc:subject="current()/."])'/>
ou se nco resultar tenta declarar uma variavel antes e usa-a na comparagco.
Se nco der, tb ja nco sei mais...
(Sorry for the post in Portuguese, it's easier for me...)
On 9/14/05, Rolando Isidoro <rli@xxxxxxxxxx> wrote:
> Following the message I sent earlier, I've been searching the web and
> reading books on the subject, but I haven't been able to solve my problem.
> At
>
http://gris-public.uninova.pt/CWIS/SPT--OAI.php?verb=ListRecords&metadataPref
ix=oai_dc&set=Creator:Ricardo+J.+Goncalves
> is located an example of the XML I'm working on.
>
> For writing a table with the total number of existing records on a given
> subject, as shown in following diagram,
>
> ----------------------------------------
> | Authored book | 2 |
> | Chapter in book | 2 |
> | Papers in conference proceedings | 1 |
> ----------------------------------------
>
> I tried something like this in the XSL file:
>
> <?xml version="1.0" encoding="UTF-8"?>
> <xsl:stylesheet version="2.0"
>
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
> xmlns:fo="http://www.w3.org/1999/XSL/Format"
> xmlns:xs="http://www.w3.org/2001/XMLSchema"
> xmlns:fn="http://www.w3.org/2005/02/xpath-functions"
>
> xmlns:dc="http://purl.org/dc/elements/1.1/"
> xmlns:def="http://www.openarchives.org/OAI/2.0/">
>
> <xsl:output method="xhtml" encoding="UTF-8" indent="yes"/>
> <xsl:template match="/">
> <html>
> <head>
> <title/>
> </head>
> <body>
> <table>
> <tbody>
> <tr>
> <td>
> Categories:
> </td>
> </tr>
>
> <xsl:for-each
> select="fn:distinct-values(//dc:subject)"> (1)
> <tr>
> <td>
> <xsl:value-of select="."/>
> </td>
> <td>
>
>
<xsl:value-of>fn:count(//def:record[def:metadata//dc:subject="."])</xsl:value
-of>
> (2)
> </td>
> </tr>
> </xsl:for-each>
>
> </tbody>
> </table>
> </body>
> </html>
> </xsl:template>
> </xsl:stylesheet>
>
> I'm using XMLSpy as my source editor, and using the "Evaluate Xpath"
> tool the query "distinct-values(//dc:subject)" returns the correct
> results, i.e., "Authored book", "Chapter in book" and "Papers in
> conference proceedings", but when testing the transformation through the
> XSL debugger the line marked with (1) doesn't return any result. The
> same happens with (2), though in the "Evaluate Xpath" tool the query
> "count(//record[metadata//dc:subject="Authored book"])" correctly
> returns 2. I haven't been able to figure out what I'm doing wrong.
>
> Any help is welcome, regards,
> Rolando
|