Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [XML] Errore di cattiva formattazione?

    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...
    .:[Mr.Mime]:.

  2. #2
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    Prova così e fammi sapere
    Codice PHP:
    $xml file_get_contents (STRINGA PERCORSO FILE XML) ;
    $xsl file_get_contents (STRINGA PERCORSO FILE XML) ;


    $arguments = array(
         
    '/_xml' => $xml,
         
    '/_xsl' => $xsl,
    );


    // Allocate a new XSLT processor
    $xh xslt_create();

    // Process the document
    $res=xslt_process($xh'arg:/_xml''arg:/_xsl'NULL $arguments); 
    ecc.... 

  3. #3
    Grazie!!!
    Ora funziona.
    Finalmente dopo 4 giorni di tentativi, si è risolto.

    Ti ringrazio infinitamente.

    Ciao e alla prossima...
    .:[Mr.Mime]:.

  4. #4
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520

    CPS

    Sono studente del corso di laurea di informatica a firenze e devo fare CPS potresti darmi il link completo se possibile
    /download/uni/cps.zip

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.