Link to home
Start Free TrialLog in
Avatar of greddin
greddinFlag for United States of America

asked on

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.
Avatar of jkmyoung
jkmyoung

use the translate function whenever you call it's value,
eg. <xsl:value-of select="translate(Title,'_',' ')"/>
Avatar of greddin

ASKER

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>
ASKER CERTIFIED SOLUTION
Avatar of jkmyoung
jkmyoung

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of greddin

ASKER

Thank you so much again.