XSL: Replace underscore with a space?

In an xsl stylesheet how would I go about replacing the underscores "_" with a space in the Title nodes of my xml file below?

<?xml version="1.0" encoding="utf-8" ?>
<Folder xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <FolderID>466</FolderID>
  <ParentID>416</ParentID>
  <Title>Breast_Cancer</Title>
  <Description />
  <Folders>
    <Folder>
      <FolderID>470</FolderID>
      <ParentID>466</ParentID>
      <Title>Carcinoma_In_Situ</Title>
      <Description />
      <Folders />
    </Folder>
    <Folder>
      <FolderID>470</FolderID>
      <ParentID>466</ParentID>
      <Title>Complementary_Medicine</Title>
      <Description />
      <Folders />
    </Folder>
  </Folders>
</Folder>

Thank you.
greddinAsked:
Who is Participating?
 
jkmyoungCommented:
Forgot, as your xml in this post didn't have the xmlns attribute, so you wouldn't get the Title because it doesn't match.

You only need to change the output template:

<xsl:template match="ccs:Folder">
  <a href="{ccs:FolderID}"><xsl:value-of select="translate(ccs:Title,'_', ' ')"/></a>
</xsl:template>
0
 
jkmyoungCommented:
use the translate function whenever you call it's value,
eg. <xsl:value-of select="translate(Title,'_',' ')"/>
0
 
greddinAuthor Commented:
Thanks, I have this but it's not working:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:ccs="CancerConsultants.Syndication" exclude-result-prefixes="ccs">
     <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
     <xsl:variable name="FolderCountHalf" select="(count(/ccs:Folder/ccs:Folders/ccs:Folder) + 1) div 2"/>
     <xsl:template match="/ccs:Folder">
          <html>
               <body>
                    <table border="1">
                         <xsl:for-each select="ccs:Folders/ccs:Folder[position() &lt;= $FolderCountHalf]">
                              <tr>
                                      <td><xsl:apply-templates select="."/><br/>
                                      <xsl:value-of select="translate(Title,'_',' ')"/>
                                      </td>
                                                      <td>
                                    <xsl:choose>
                                                      <xsl:when test="following-sibling::ccs:Folder[position() = $FolderCountHalf]">
                                                            <xsl:apply-templates select="following-sibling::ccs:Folder[position() = $FolderCountHalf]"/>
                                                      </xsl:when>
                                                      <xsl:otherwise>&#160;</xsl:otherwise>
                                                      </xsl:choose>
   
                                   </td>
                              </tr>
                         </xsl:for-each>
                    </table>
               </body>
          </html>
     </xsl:template>
     <xsl:template match="ccs:Folder">
          <a href="{ccs:FolderID}"><xsl:value-of select="ccs:Title"/></a>
     </xsl:template>
</xsl:stylesheet>
0
 
greddinAuthor Commented:
Thank you so much again.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.