Here a tiny patch for your consideration such that arrow and eps symbol are properly displayed (in IE and FireFox, both Win10). Separately, some minor edits adding some blanks.
Thanks, J. --- C:/cygwin32/usr/share/bison/xslt/xml2xhtml.xsl Fri Jan 23 20:32:41 2015 +++ C:/myDevel/mybin/data/xslt/xml2xhtml.xsl Sun Apr 24 10:51:08 2016 @@ -37,7 +37,8 @@ <xsl:template match="/"> <html> - <head> + <head> + <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/> <title> <xsl:value-of select="bison-xml-report/filename"/> <xsl:text> - GNU Bison XML Automaton Report</xsl:text> @@ -558,7 +559,7 @@ </xsl:template> <xsl:template match="empty"> - <xsl:text> %empty</xsl:text> + <xsl:text> ε</xsl:text> </xsl:template> <xsl:template match="lookaheads"> @@ -587,7 +588,7 @@ <xsl:attribute name="href"> <xsl:value-of select="concat('#state_', @state)"/> </xsl:attribute> - <xsl:value-of select="concat('shift, and go to state ', @state)"/> + <xsl:value-of select="concat(' shift, and go to state ', @state)"/> </a> </xsl:when> <xsl:when test="@type = 'goto'"> @@ -595,7 +596,7 @@ <xsl:attribute name="href"> <xsl:value-of select="concat('#state_', @state)"/> </xsl:attribute> - <xsl:value-of select="concat('go to state ', @state)"/> + <xsl:value-of select="concat(' go to state ', @state)"/> </a> </xsl:when> </xsl:choose> @@ -635,7 +636,7 @@ <xsl:attribute name="href"> <xsl:value-of select="concat('#rule_', @rule)"/> </xsl:attribute> - <xsl:value-of select="concat('reduce using rule ', @rule)"/> + <xsl:value-of select="concat(' reduce using rule ', @rule)"/> </a> <xsl:text> (</xsl:text> <xsl:value-of