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:
Questo è il file XML di partenza: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 codice XSLT: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 DTD: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>
Spero possiate darmi una mano.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 >
Grazie e alla prossima...

Rispondi quotando
