Ho notato che è un problema frequente cercando su Google ma nonostante abbia cercato a lungo, non ho trovato una soluzione.
Spero che su questo forum si riesca a risolvere il problema.

In pratica quando cerco di far trasforamare un XML in HTML tramite PHP ed un XSLT, mi viene fuori questo errore:

Sorry, xml/uni_cps.xml could not be transformed by uni.xsl into and the error code is 2 the $result variable the reason is that XML parser error 4: not well-formed (invalid token)1

Da notare che se faccio parsare l'XML dall'XSLT al di fuori di PHP, funziona perfettamente.

Qui di seguito i vari codici:

Questo è il codice eseguito:

codice:
function xml_eat ($xml,$xslt)
   {
      $xmldoc = $_SERVER['DOCUMENT_ROOT'].$_SERVER['REDIRECT_URL'].$xml;
      $xsltdoc = $_SERVER['DOCUMENT_ROOT'].$_SERVER['REDIRECT_URL'].$xslt;
      echo $xmldoc;

	  $xh = xslt_create();

      $result = xslt_process($xh, $xmldoc, $xsltdoc);
      if ($result) {
		print "SUCCESS, .$xml. was transformed by sample.xsl into the \$result";
		print " variable, the \$result variable has the following contents\n
\n";
	    print "<pre>\n";
		print $result;
        print "</pre>\n";
      }
      else {
        print "Sorry, $xml could not be transformed by sample.xsl into";
        print "  the \$result variable the reason is that " . xslt_error($xh) .
        print " and the error code is " . xslt_errno($xh);
      }

      xslt_free($xh);

   }
Questo è il file XML di partenza:

codice:
<?xml version="1.0" encoding="UTF-8"?>    
<!DOCTYPE PAGINA SYSTEM "uni.dtd">
<?xml-stylesheet type="text/xsl" href="uni.xsl"?>
<pagina>
  <titolo> Calcolo delle probabilita' e Statistica </titolo>
  <descrizione> Questo documento rappresenta forse l'apice dei miei lavori in
    quanto per completarlo ho veramente sudato sangue dato l'argomento trattato.
    <capo/>Come tutti i frequentatori della facolta' di informatica di Bologna
    sanno, CPS (Calcolo delle probabilita' e statistica) rappresenta l'ostacolo
    piu' ostico e la materia matematica piu' difficile.
    Molti hanno tentato di superarla ma hanno fallito nell'impresa.
    Con questo documento cerchera' di dare un'arma in piu' contro questa
    ostica materia.
    Spero possa esservi utile.
  </descrizione>
  <scarica>
    <file url="../download/uni/cps.zip">SCARICA </file>
  </scarica>
</pagina>
Questo è il codice XSLT:

codice:
<?xml version="1.0" >    
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">    
    <xsl:template match="/">    

         <table align="center" border="1" cellspacing="0" cellpadding="0" width="90%" heigh="90%">

         <xsl:apply-templates>    
         </xsl:apply-templates>

         </table>

    </xsl:template>

    <xsl:template match="titolo">
        <tr><th>
        <xsl:value-of select="text()"/>
        </th></tr>
    </xsl:template>

    <xsl:template match="scarica">
       <tr><td align="center" >
          <a>
            <xsl:attribute name="href">
              <xsl:value-of select="file/@url"/>
            </xsl:attribute>
         <xsl:value-of select="file"/>
         </a>
       </td></tr>
    </xsl:template>

   <xsl:template match="descrizione">
       <tr><td align="center">
         <xsl:apply-templates/>
       </td></tr>
   </xsl:template>

   <xsl:template match="capo">
      

   </xsl:template>

</xsl:stylesheet>
Questo il DTD:
codice:
<!ELEMENT pagina (titolo,descrizione,scarica)>
<!ELEMENT titolo (#PCDATA)>
<!ELEMENT descrizione ( #PCDATA | capo )* >
<!ELEMENT capo EMPTY>
<!ELEMENT scarica (file*)>
<!ELEMENT file (#PCDATA)>
<!ATTLIST file url CDATA #IMPLIED >
Spero possiate darmi una mano.

Grazie e alla prossima...