I notice you have a test of "not(@attribute)" in your code. Should
this be "not(@authority)", instead?
-Brandon :)
On Mon, Apr 18, 2011 at 2:39 PM, Bridger Dyson-Smith
<bdysonsmith@xxxxxxxxx> wrote:
> Hi all,
> Thanks for reading. I'm sure I'm making an error, but I'm not able to
> determine where I'm going awry.
>
> I want to use concat() to pull together three elements, separating the
> values with a comma. I've done this, but it turns out that I need to
> test the elements. When I perform the tests I'm able to concat() the
> values (when appropriate), but I'm not getting any commas between my
> values. I put up examples on pastebin: the XML is at
> http://pastebin.com/tGbJMpGG and the XSLT is at
> http://pastebin.com/DY4ELbh3, lines 11-18 and 25-58 respectively. The
> examples below are shortened versions of the examples on Pastebin -
> line numbers will be slightly different.
>
> Thanks for your time and suggestions.
> Cheers,
> Bridger
>
> PS here is an abbreviated example of the XML and the XSLT:
>
> <?xml version="1.0" encoding="UTF-8" ?>
> <mods:mods xmlns:mods="http://www.loc.gov/mods/v3"
> xmlns:xlink="http://www.w3.org/1999/xlink"
> xmlns="http://www.loc.gov/mods/v3"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xsi:schemaLocation="http://www.loc.gov/mods/v3
> http://www.loc.gov/standards/mods/v3/mods-3-2.xsd" ID="MODS"
version="3.2">
> <mods:titleInfo>
> <mods:title>Chimney and Indian Gap Hotel</mods:title>
> </mods:titleInfo>
> <mods:name type="personal" authority="LCNAF">
> <mods:namePart type="family">Thompson</mods:namePart>
> <mods:namePart type="given">James Edward</mods:namePart>
> <mods:namePart type="date">1880-1976</mods:namePart>
> <mods:role>
> <mods:roleTerm authority="marcrelator">Photographer</mods:roleTerm>
> </mods:role>
> </mods:name>
> </mods:mods>
>
> <?xml version="1.0" encoding="UTF-8"?>
> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="2.0"
> xmlns:mods="http://www.loc.gov/mods/v3"
> xmlns:xlink="http://www.w3.org/1999/xlink"
> xmlns="http://www.loc.gov/mods/v3"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xsi:schemaLocation="http://www.loc.gov/mods/v3
> http://www.loc.gov/standards/mods/v3/mods-3-2.xsd"
> xmlns:oai_dc="http://www.openarchives.org/OAI/2.0/oai_dc/"
> xmlns:dc="http://purl.org/dc/elements/1.1/">
>
> <xsl:output method="xml" media-type="text/xml" indent="yes" />
> <xsl:strip-space elements="*"/>
> <xsl:template match="mods:mods">
> <oai_dc
> xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/oai_dc/
> http://www.openarchives.org/OAI/2.0/oai_dc.xsd">
> <xsl:apply-templates/>
> </oai_dc>
> </xsl:template>
>
> <xsl:template match="mods:titleInfo">
> <dc:title>
> <xsl:value-of select="./mods:title"/>
> </dc:title>
> </xsl:template>
>
> <xsl:template match="mods:name">
> <xsl:choose>
> <xsl:when test="./mods:role/mods:roleTerm">
> <dc:creator>
> <!--<xsl:value-of
> select="concat(./mods:namePart[@type='family'], ', ',
> ./mods:namePart[@type='given'], ', ',
> ./mods:namePart[@type='date'])"/>-->
> <xsl:choose>
> <xsl:when test="not(@attribute)">
> <xsl:value-of select="mods:namePart"/>
> </xsl:when>
> <xsl:otherwise>
> <xsl:choose>
> <xsl:when test=".[@type='corporate']">
> <xsl:value-of select="mods:namePart"/>
> </xsl:when>
> <xsl:when test=".[@type='personal']">
> <xsl:if test="count(mods:namePart) =
1">
> <xsl:value-of
select="mods:namePart"/>
> </xsl:if>
> <xsl:if test="count(mods:namePart) >
2">
> <xsl:value-of
> select="concat(./mods:namePart[@type='family'], ', ',
> ./mods:namePart[@type='given'], ', ',
> ./mods:namePart[@type='date'])"/>
> </xsl:if>
> </xsl:when>
> </xsl:choose>
> </xsl:otherwise>
> </xsl:choose>
> </dc:creator>
> </xsl:when>
> <xsl:otherwise>
> <dc:contributor>
> <xsl:value-of select="./mods:namePart[@type='*']"/>
> </dc:contributor>
> </xsl:otherwise>
> </xsl:choose>
> </xsl:template>
>
>
> </xsl:stylesheet>
|