xsl-list
[Top] [All Lists]

Replacing words in an element

2003-08-15 14:04:12
How do I replace SOUTHLIB with "South Library"?

XML input:

<B1>Cardiology clinics.</B1> 
<B4>LIBWEBSITE --</B4> 
<B4>Online access; years vary.</B4> 
<B4>JOURNALS --</B4> 
<B4>Vol 7- 1989-</B4> 
<B4>ONLINELIB</B4> 
<B4>SOUTHLIB</B4> 
<DBC>LIBCAT</DBC> 
<DBN>Library catalog</DBN

XSL code:

        <xsl:choose>
                <!-- If record is from Library catalog -->
                <xsl:when test="DBN='Library catalog'">
                        Holdings: 
                        <xsl:for-each select="$items[text()!='ONLINELIB' and  
text()!='LIBWEBSITE --'  and text()!='JOURNALS --']">
                                            
                                              <-- Tried the following but 
didn't work-->
                                              <!--<xsl:choose>
                                                <xsl:when 
test="starts-with($items, 'SOUTHLIB')">
                                                        South Campus Library
                                                </xsl:when>
                                </xsl:choose>-->        
                                
                                <xsl:value-of select="."/>
                                
                                <xsl:if test="position() != last()">
                                                <xsl:variable name="pos" 
select="position()"/>
                                                <xsl:variable name="next" 
select="$items[$pos+1]"/>
                                        <xsl:choose>
                                                <xsl:when test="name() = 
name($next)"><xsl:value-of select="$separator1"/></xsl:when>
                                                <xsl:otherwise><xsl:value-of 
select="$separator2"/></xsl:otherwise>
                                        </xsl:choose>
                                </xsl:if>
                        </xsl:for-each>
                </xsl:when>
                
                <!--If record is from electronic journals collection-->
                <xsl:otherwise>
                        <xsl:for-each select="$items[name()='B2']">
                                <xsl:call-template name="DisplayItem"/>
                        </xsl:for-each>
                </xsl:otherwise>
        </xsl:choose>
</xsl:template>

<!-- ########################################################################## 
-->

<xsl:template name="DisplayItem">
        <xsl:variable name="pos" select="position()"/>
        <xsl:variable name="url" select="following-sibling::B3[$pos]"/>
        
                       <!--Tried this but didn't work -->
                <!--<xsl:choose>
                        <xsl:when test="contains(., 'SOUTHLIB')">South 
Library</xsl:when>
                <xsl:otherwise>
                        <xsl:value-of select="."/>
                </xsl:otherwise>
                </xsl:choose>-->

                <xsl:value-of select="."/>
                <xsl:text> (</xsl:text><a 
href="{$url}">Full-Text</a><xsl:text>)</xsl:text>
                        <xsl:if test="position()!=last()">
                                 <xsl:text>, </xsl:text>
                        </xsl:if>
</xsl:template>

<!-- ########################################################################## 
-->

Joseph


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list



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