I have a XML data structure that I am transforming with XSLT into HTML. I need to split the text in the current_teaching element of my XML into dot points (semi-colons in the element content indicate where I would like the splitting to occur) with XSLT and output.
So far this is what I have.
XML/XSLT FILE:
        <?xml version="1.0" encoding="UTF-8"?>
    <?xml-stylesheet type="text/xsl" href="StaffList.xslt"?>
    <StaffList>
        <StaffMember>
            <title>Dr John Brown</title>
            <titledesc>Senior Lecturer, ICU Security Research Institute</titledesc>       <!-- example text --> 
            <telephone>(645) 2545 6988</telephone>
            <mobile>04568 6665 666</mobile>
            <facsimile>(61 8) 9999 9999</facsimile>
            <email>dr.brown@brown.com</email>
            <campus>Mountain Range</campus> 
            <room>18.13</room>
            <description>John Brown is a awesome doctor.</description>
            <current_teaching>Data Structures; Principles of Distributed Systems; Fundamentals of Software Engineering</current_teaching> 
        </StaffMember>
    </StaffList>
XSLT:
   <?xml version="1.0" encoding="ISO-8859-1"?>
    <xsl:stylesheet version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:template match="/">
     <html>
      <head>
              <link rel="stylesheet" type="text/css" href="StaffList.css"/>
     </head>
     <body>
       <xsl:for-each select="StaffList/StaffMember">
        <h2 id="title"><xsl:value-of select="title"/></h2>
        <h3 id="titledesc"><xsl:value-of select="titledesc"/></h3>
        <br></br>
       <table>
         <tr>
         <td id="telephone_1">Telephone</td>
          <td id="telephone_2"><xsl:value-of select="telephone"/></td>
         </tr>
         <tr>
         <td id="mobile_1">Mobile</td>
         <td id="mobile_2"><xsl:value-of select="mobile"/></td>
        </tr>
        <tr>
        <td id="facsimile_1">Facsimile</td>
        <td id="facsimile_2"><xsl:value-of select="facsimile"/></td>
        </tr>
        <tr>
        <td id="email_1">Email</td>
        <td id="email_2"><xsl:value-of select="email"/></td>
        </tr>
        <tr>
        <td id="campus_1">Campus</td>
        <td id="campus_2"><xsl:value-of select="campus"/></td>
        </tr>
        <tr>
        <td id="room_1">Room</td>
        <td id="room_2"><xsl:value-of select="room"/></td>
        </tr>   
       </table>
       <br></br>
       <br></br>
       <p><xsl:value-of select="description"/></p>
       <br></br>
        </xsl:for-each>
     </body>
     </html>
    </xsl:template></xsl:stylesheet>
I did some searching and already found a possible solution but I could not get my XSLT to work with it. Here is what I tried:
        <ul>
        <xsl:analyze-string select="string()" regex=".*?[\.;]" flags="sm">
            <xsl:matching-substring>
                <li><xsl:value-of select="."/></li>
            </xsl:matching-substring>
            <xsl:non-matching-substring>
                <li><xsl:value-of select="."/></li>
            </xsl:non-matching-substring>
        </xsl:analyze-string>
    </ul>  
This was added in-between the last br /br and /xsl:for-each of the XSLT code above.