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(_at_)gmail(_dot_)com> 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>
--~------------------------------------------------------------------
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>
--~--
--~------------------------------------------------------------------
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>
--~--