xsl-list
[Top] [All Lists]

Several XSLT questions...

2005-05-18 08:43:13
Hi, I've been working with a OAI-PMH complaint tool and I need to present the XML data harvested from it in a website. I've accomplished it so far by creating a XSL file, but encountered some difficulties in the implementation of severals aspects.

Basicly the XML is exported in the structure shown below:

<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="gris2.xsl"?>
<OAI-PMH xmlns="http://www.openarchives.org/OAI/2.0/";
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
       xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/
           http://www.openarchives.org/OAI/2.0/OAI-PMH.xsd";>
   <responseDate>2004-11-15T13:21:38Z</responseDate>
<request verb="ListRecords" metadataPrefix="oai_dc">http://resgenchem15.chem.wisc.edu/spt/SPT--OAI.php</request>

   <ListRecords>
       <record>
           <header>
               <identifier>oai:jce.divched.org:jcedlib-58</identifier>
               <datestamp>2003-06-03</datestamp>
           </header>
           <metadata>
<oai_dc:dc xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/oai_dc/ http://www.openarchives.org/OAI/2.0/oai_dc.xsd"; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; xmlns:oai_dc="http://www.openarchives.org/OAI/2.0/oai_dc/"; xmlns:dc="http://purl.org/dc/elements/1.1/";> <dc:title>Journal of Chemical Education Digital Library</dc:title>
                   <dc:creator>John W. Moore</dc:creator>
                   <dc:creator>Jon L. Holmes</dc:creator>
                   <dc:creator>Edward W. Vitz</dc:creator>
                   <dc:creator>William F. Coleman</dc:creator>
                   <dc:creator>Theresa J. Zielinski</dc:creator>
<dc:description>The JCE Digital Library (JCE DLib) was established in 2003 as a result of an NSF grant. It is a part of the NSDL, and initially includes four features: WebWare, DigiDemos, QBank, and SymMath.</dc:description> <dc:publisher>The Division of Chemical Education, Inc., of the American Chemical Society</dc:publisher>
                   <dc:date>2003-01-01</dc:date>
                   <dc:type>Collection</dc:type>
                   <dc:format>text/html</dc:format>
<dc:identifier>http://jce.divched.org/JCEDLib/</dc:identifier>
                   <dc:language>en</dc:language>
                   <dc:relation> isPartOf: ISSN:0021-9584</dc:relation>
<dc:rights>Copyright 2003 by the Division of Chemical Education, Inc., American Chemical Society.</dc:rights>
                   <dc:subject>Elementary / Middle School</dc:subject>
<dc:subject>High School / Introductory Chemistry</dc:subject> <dc:subject>First-Year Undergraduate / General</dc:subject>
                   <dc:subject>Graduate Education / Research</dc:subject>
                   <dc:subject>General Public</dc:subject>
                   <dc:subject>Second-Year Undergraduate</dc:subject>
                   <dc:subject>Upper-Division Undergraduate</dc:subject>
                   <dc:subject>Continuing Education</dc:subject>
                   <dc:subject>Analytical Chemistry</dc:subject>
                   <dc:subject>Chemical Education Research</dc:subject>
                   <dc:subject>Inorganic Chemistry</dc:subject>
                   <dc:subject>Laboratory Instruction</dc:subject>
                   <dc:subject>Physical Chemistry</dc:subject>
                   <dc:subject>Organic Chemistry</dc:subject>
                   <dc:subject>Biochemistry</dc:subject>
               </oai_dc:dc>
           </metadata>
       </record>

      <record>
         .
         .
         .
      </record>

   </ListRecords>
</OAI-PMH>


Each record as a certain type, described in "dc:type", which may vary as Paper, Journal, Article, etc; When harvesting data from the repository, I'll be accessing all the records of a given person, identified in "dc:creator", which returns a XML sorted by "dc:date";

I want to present this data in HTML in a structure similar to the one below:

Type1:

creator, title, date, publisher. (background color for odd row)
creator, title, date, publisher. (background color for even row)

Type2:

creator, title, date, publisher (background color for odd row)
creator, title, date, publisher (background color for even row)


So far I've managed to perform a simple transformation by applying this XSL:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
   xmlns:dc="http://purl.org/dc/elements/1.1/";
   xmlns="http://www.w3.org/1999/xhtml";
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; exclude-result-prefixes="dc"
   xmlns:def="http://www.openarchives.org/OAI/2.0/";>
<xsl:output method="html" indent="yes"/> <xsl:template match="/">
       <html>
           <head>
               <link rel="stylesheet" href="oai.css" type="text/css"/>
           </head>
           <body id="body">
<xsl:for-each select="//def:record">

<!-- Creator data manipulation --> <xsl:for-each select="def:metadata//dc:creator">
                           <xsl:value-of select="."/>
                           ,
</xsl:for-each> <!-- Title manipulation --> <i>
                           <xsl:value-of select="def:metadata//dc:title"/>
                       </i>
                       .
                       <br/>

<!-- Publisher manipulation --> <xsl:value-of select="def:metadata//dc:publisher"/>
                       ,

<!-- Date manipulation --> <xsl:value-of select="def:metadata//dc:date"/>
                       .
                   <br/>
                   <br/>

           </xsl:for-each>

           </body>
       </html>
   </xsl:template>
</xsl:stylesheet>


I've tried to perform the sort by introducing <xsl:sort select="def:metadata//dc:title"> right next to the <xsl:for-each ...> tag but it returned a blank document. How can I do this sorting of the records and how can I identify if the current record number is even or odd in order to perform diferent customizations?

Sorry for the lenght of the mail and thanks in advance,
Rolando

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--



<Prev in Thread] Current Thread [Next in Thread>