Newsgroup: it.comp.lang.delphi
Titolo: f.e. xml e foglio di stile AssoSoftware

Salve,
   il file xml che produco e che va d'accordo con il s.d.i. comincia così:
 
<?xml version="1.0" encoding="Windows-1252" standalone="no"?>
   <p:FatturaElettronica versione="FPR12" 
xmlns:p="
http://ivaservizi.agenziaentrate.gov.it/docs/xsd/fatture/v1.2
">
     <FatturaElettronicaHeader>
       <DatiTrasmissione>
         <IdTrasmittente>
           <IdPaese>IT</IdPaese>
 
se alla seconda riga inserisco:
<?xml-stylesheet type=”text/xsl” href=”FoglioStileAssoSoftware.xsl”?>
 
Nella speranza che mi venga visualizzata su un browser la fattura nel 
formato di AssoSoftware ottengo, invece, la visualizzazione come se si 
trattasse di una sola riga con tutto il testo/numeri/date una parola 
dietro l'altra. Il software AssoInvoice, invece, la visualizza 
correttamente.
 
In rete leggo che per associare un foglio di stile .xsl ad un file .xml 
basta inserire quella riga e, naturalmente, avere il foglio .xsl nella 
stessa cartella.
 
Dove sto sbagliando?
 
Grazie.
 
Ciao.

 Dove sto sbagliando?
 
In teoria non ci sono sbagli. Controlla i doppi apici dello stylesheet:
 
<?xml-stylesheet type=”text/xsl” href=”FoglioStileAssoSoftware.xsl”?>
 
e sostituiscili con:
 
<?xml-stylesheet type="text/xsl" href="FoglioStileAssoSoftware.xsl"?>
 
HTH,
David
 
 

 
 
Grazie, Adesso funziona. Non si finisce mai di imparare :)
 
Se posso ancora chiedere:
Con delphi è possibile visualizzare un file .xml secondo il file .xsl di 
stile *senza* modificare il file .xml (in pratica senza inserire quella 
riga sul file .xml)?
 
Grazie, Ciao.

 quella riga sul file .xml)?
 
Devi utilizzare MSXML.
 
In pratica devi fare una cosa simile a questa:
 
uses
  Winapi.MSXML,
 
function TrasformaXML(const AXmlFile, AXslFile: String): String;
var
    LXml: IXMLDOMDocument;
    LXsl: IXMLDOMDocument;
begin
    LXml := CoDOMDocument.Create;
    LXml.load(AXmlFile);
 
    LXsl := CoDOMDocument.Create;
    LXsl.load(AXslFile);
 
    result := LXml.transformNode(LXsl);
end;
 
Di ritorno hai il contenuto dell'HTML dei dati XML trasformati con il foglio 
di stile XSL.
 
HTH,
David
 
 

 foglio di stile XSL.
 
Scusa, non si legge niente :-)


 Winapi.MSXML,
 
Grrrrr!!!!!!!!!!!
 
 

 
 
Questa funzione l'avevo trovata in rete e l'avevo provata ma, con IE 
ottengo:
#fattura-elettronica { font-family: 'Segoe UI', Tahoma, Geneva, Verdana, 
sans-serif; margin-left: auto; margin-right: auto; max-width: 1280px; 
min-width: 800px; padding: 0; } #fattura-elettronica 
div.page
 { } 
.tbHeader { width: 800px; border: 2px solid black; } tr td 
{vertical-align: top;} .tdHead { width: 50%; height: 91px; border: 1px 
solid black; } .tableHead { font-size:smaller; width: 100%; } 
.headBorder { } .headerLabel { color:#282828; font-weight:bold; } 
.headContent { margin-left:10px; margin-bottom:0px } .mt5 { 
margin-top:5px } tr.break { page-break-after: always; } .ulAllegati { 
margin-top:0px; } .separa { height:20px; } table.tbTitolo { width: 
800px; table-layout: fixed; border-collapse: collapse; word-wrap:normal; 
} table.tbTitolo th { padding-left: 5px; padding-right: 5px; border: 
solid 1px #000000; border-bottom: none; background-color: LightCyan; 
font-size:x-small; } table.tbFoglio { width: 800px; table-layout: fixed; 
border-collapse: collapse; word-wrap:normal; } table.tbFoglio th { 
padding-left: 5px; padding-right: 5px; border: solid 1px #000000; 
background-color: LightGrey; font-size:x-small; } table.tbFoglio tbody { 
border: solid 1px #000000; } table.tbFoglio th .perc { width:50px; } 
table.tbFoglio td { font-size:small; border-right: solid 1px #000000; 
border-bottom: none; border-left: solid 1px #000000; } table.tbFoglio tr 
{ } .textRight { text-align:right; } .textCenter { text-align:center; } 
.textPerc { width:50px; } td.Ritenuta { width:50px; text-align:center; } 
th.title, .title td { width:48% } th.perc { width:50px; } th.perc2 { 
width:40px; } th.data { width:100px; } th.import { width:100px; } 
td.import { text-align:right; } th.import2 { width:80px; } td.import2 { 
text-align:right; } th.ximport { width:100px; } td.ximport { 
text-align:center; } th.ximport2 { width:80px; } td.ximport2 { 
text-align:center; } td.data { text-align:center; } .tx-xsmall { 
font-size:x-small; } .tx-small { font-size:small; } .import { 
text-align:right; }
 
con Firefox ottengo:
Errore interpretazione XML: tag corrispettivo mancante. Previsto: </meta>.
Indirizzo: file:///K:/proa/prova.xml
Riga numero 236, colonna 3:</head>
--^
 
Suggerimenti?
 
Grazie.
 
Ciao.

Risolto :)
 
Sbagliavo a salvare il risultato della funzione in un file con 
estensione .xml invece che .html
 
Salvando come .html ottengo la visualizzazione corretta della fattura 
elettronica.
 
Grazie ancora.
 
Ciao.
 

 
Mi accorgo che le lettere accentate non vengono visualizzate 
correttamente, credo dipenda dal codepage, infatti se dal menu 
contestuale del TWebBrowser durante la visualizzazione lo imposto a 
"Europa Occidentale (Windows)" la visualizzazione è Ok.
 
Il problema è che non ho capito come poter impostare la giusta codegape 
al componente TWebBrowser a seconda del sistema che esegue il mio programma.
 
Qualcuno può aiutarmi?
 
Grazie.
 
Ciao.