Visualizzazione dei risultati da 1 a 10 su 10

Discussione: informazione

  1. #1

    informazione

    mi sto avvicianando ora ad xml e i fogli di stile, proprio su questi o una domanda:
    se a casa non ho il tel per collegarmi, o se volessi creare un cd da dare ad altri.... la diachiarazione:
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    come va fatta? l'esempio riporta un indirizzo internet.
    Scusate se la comanda e stupida.
    Ciao da Bruno

  2. #2
    ottima domanda, comnq "credo" non ti crei nessun problema, serve soltanto al parser (browser o altro) per identificare correttamente il namespace.
    "0 è tutto finito. 1 è solo l'inizio"
    HO IL CERTIFICATO DI RESISTENZA.

  3. #3
    Originariamente inviato da max161
    ottima domanda, comnq "credo" non ti crei nessun problema, serve soltanto al parser (browser o altro) per identificare correttamente il namespace.
    esatto i namespace in realtà non puntano alcun URI fisico (file) ma solo logico comportandosi come identificatori univoci per un dato spazio logico... quindi nessun problema anche offline
    Luca Mascaro
    Usability e Accessibility Engineer, User Interface Designer/Engineer
    NOW BLOG
    W3C HTML & WCAG WG Member for IWA/HWG

  4. #4

    grazie

    Grazie Max161 e a te blakwolf


    Ciao a presto

  5. #5
    Utente di HTML.it L'avatar di salasir
    Registrato dal
    Apr 2004
    Messaggi
    1,887
    Se posso intromettermi avrei anch'io un chiarimento da sottoporvi.
    Poichè sto scrivendo anch'io un CD, non ho alcun problema ad associare xsl ad xml con IE mentre Firefox o Netscape non riconoscono la conversione.
    Siccome ne so poco ancora, è giusta l'ipotesi che il parser sia incluso in IE mentre per gli altri ne vada installato uno??

    E poi, come si fa a sostituire ActiveXobject (per associare allo stesso xml diversi xsl) con qualcosa che vada bene per tutti?

    Grazie anticipatamente.

    Maurizio

  6. #6
    dipendi cosa devi fare... se devi trattare dati xml devi usare metodi diversi per ogni browser (data island, activeX, xmlHTTP...) mentre per quanto riguarda la semplice trasformazione xsl il parser è incluso in tutti i browser di 3a generazione (ie 5.5+, firefox-mozilla, opera...)
    Luca Mascaro
    Usability e Accessibility Engineer, User Interface Designer/Engineer
    NOW BLOG
    W3C HTML & WCAG WG Member for IWA/HWG

  7. #7
    Utente di HTML.it L'avatar di salasir
    Registrato dal
    Apr 2004
    Messaggi
    1,887
    Partiamo dalla semplice trasformazione. Con questi semplici sorgenti
    XML
    <?xml:stylesheet type="text/xsl" href="prova.xsl" ?>
    <items>
    <item desc="BI">
    <text>ccc</text>
    <altro>333</altro>
    </item>
    <item desc="CA">
    <text>fff</text>
    <altro>666</altro>
    </item>
    <item desc="BA">
    <text>aaa</text>
    <altro>111</altro>
    </item>
    <item desc="BO">
    <text>ddd</text>
    <altro>444</altro>
    </item>
    <item desc="CE">
    <text>ggg</text>
    <altro>777</altro>
    </item>
    <item desc="CI">
    <text>hhh</text>
    <altro>888</altro>
    </item>
    <item desc="BU">
    <text>eee</text>
    <altro>555</altro>
    </item>
    <item desc="BE">
    <text>bbb</text>
    <altro>222</altro>
    </item>
    </items>

    XSL
    <?xml version="1.0"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xslutput method="html" indent="yes" />
    <xsl:template match="/items" >
    <html>
    <body >
    <table border="1">
    <xsl:apply-templates />
    </table>
    </body>
    </html>
    </xsl:template>
    <xsl:template match="item[(position()-1) mod 5 = 0]" >
    <tr>
    <td><xsl:value-of select="@desc" /></td>
    <xsl:for-each select="following-sibling::node()[position() &lt; 5]">
    <td><xsl:value-of select="@desc" /></td>
    </xsl:for-each>
    </tr>
    </xsl:template>
    <xsl:template match="item"/>

    </xsl:stylesheet>

    se apro prova.xml con IE si presenta la pagina formattata, mentre con firefox o altri viene esposto il sorgente XML non interpretato con un messaggio tipo:

    Il file XML specificato apparentemente non ha un foglio di stie associato. ...

    Dove sbaglio o non ho capito??

    Maurizio

  8. #8
    Utente di HTML.it L'avatar di salasir
    Registrato dal
    Apr 2004
    Messaggi
    1,887
    Nessuno può darmi una dritta??

    Maurizio

  9. #9
    Utente di HTML.it L'avatar di salasir
    Registrato dal
    Apr 2004
    Messaggi
    1,887

    Trasformazione XML-XSL con Mozilla

    Ho trovato una possibilità:

    function Scheda(XSLsource,var1){
    var moz = (typeof document.implementation != 'undefined') && (typeof
    document.implementation.createDocument != 'undefined');
    var ie = (typeof window.ActiveXObject != 'undefined');

    if (moz) {
    // load the xslt file
    var xslStylesheet;
    var xsltProcessor = new XSLTProcessor();
    var myDOM;
    var xmlDoc;
    var myXMLHTTPRequest = new XMLHttpRequest();

    myXMLHTTPRequest.open("GET", XSLsource, false);
    myXMLHTTPRequest.send(null);

    xslStylesheet = myXMLHTTPRequest.responseXML;
    xsltProcessor.importStylesheet(xslStylesheet);

    // load the xml file
    myXMLHTTPRequest = new XMLHttpRequest();
    myXMLHTTPRequest.open("GET", "DB.xml", false);
    myXMLHTTPRequest.send(null);
    xmlDoc = myXMLHTTPRequest.responseXML;

    // set the parameter using the parameter passed to the outputgroup function
    xsltProcessor.setParameter(null,"Nome",var1);
    // Transform
    result = xsltProcessor.transformToDocument(xmlDoc);
    document.removeChild(document.firstChild);
    document.appendChild(result.firstChild);

    } else if (ie) {
    // Load XSL
    var xslt = new ActiveXObject("Msxml2.XSLTemplate");
    var xslDoc = new ActiveXObject("Msxml2.FreeThreadedDOMDocument");
    var xslProc;
    xslDoc.async = false;
    xslDoc.resolveExternals = false;
    xslDoc.load(XSLsource);
    xslt.stylesheet = xslDoc;

    // load the xml file
    var xmlDoc = new ActiveXObject("Msxml2.DOMDocument");
    xmlDoc.async = false;
    xmlDoc.resolveExternals = false;
    xmlDoc.load("DB.xml");
    xslProc = xslt.createProcessor();
    xslProc.input = xmlDoc;

    // set the parameter using the parameter passed to the outputgroup function
    xslProc.addParameter("Nome", var1);
    // Transform
    xslProc.transform();
    document.write(xslProc.output);
    }
    else {
    alert("Unable to do xml/xsl processing");
    }
    }

    Con questa js riesco a visualizzare l'elemento interessato con fogli di stile diversi a seconda delle necessità e anche a passare parametri esterni.

    Ma ... come al solito IE digerisce di tutto mentre x es. Firefox e Netscape visualizzano la pagina corretta ma la barra di scorrimento è di dimensione massima non permettendo lo scroll!?!

    Qualcuno ha idea di cosa possa essere?

    (PS. Opera non dà errori ma non visualizza la pagina pur essendo riconosciuto come Moz)

    Maurizio

  10. #10
    Utente di HTML.it L'avatar di salasir
    Registrato dal
    Apr 2004
    Messaggi
    1,887
    Risolto!
    per il caso dell'interpretazione bastava modificare la prima riga dei source XML e XSL
    <?xml version="1.0" encoding="iso-8859-1" ?>

    Per la trasformazione con FF ho modificato le ultime istruzioni

    // Transform
    var result = xsltProcessor.transformToDocument(xmlDoc);
    document.write(result.documentElement.innerHTML);

    Rimane solo il problema Opera che viene riconosciuto come MOZ ma non visualizza niente.
    Maurizio

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 © 2025 vBulletin Solutions, Inc. All rights reserved.