Visualizzazione dei risultati da 1 a 3 su 3

Discussione: XSLTprocessor

  1. #1

    XSLTprocessor

    Provo a vedere se riesco ad avere un pò di fortuna..

    Codice PHP:
        __doTrasform:function (docElementxmlDocxslDoc) {
            if (
    xmlDoc == null || xslDoc == null) { alert('qualcosa di null'); };
            
            if (
    window.ActiveXObject){
                
    document.getElementById(docElement).innerHTML xmlDoc.transformNode(xslDoc);
                } else {
                
    mainDocument document;
                var 
    xsltProcessor = new XSLTProcessor();
                
    xsltProcessor.importStylesheet(xslDoc);
                var 
    fragment xsltProcessor.transformToFragment(xmlDocmainDocument);
                
    outputDiv document.getElementById(docElement);
                
    outputDiv.appendChild(fragment);
            }
        } 
    Questo è il codice, si trattta di un metodo che esegue la trasformazione di un file XML + XSLT.. le variabili xmlDoc e xslDoc sono valorizzate correttamente, ma ricevo di ritorno il seguente errore:
    Codice PHP:
    Errore: [Exception... "Could not convert JavaScript argument"  nsresult"0x80570009 (NS_ERROR_XPC_BAD_CONVERT_JS)"  location"JS frame :: [url]http://www.***.com/xml/xmlTemp/ajax.js[/url] :: anonymous :: line 96"  datano
    La linea 96 è: var fragment = xsltProcessor.transformToFragment(xmlDoc, mainDocument);

    Ora, sò che magari è un'argomento difficile ma qualcuno ha qualche idea di come risolvere il problema? :master: io intanto continuo la ricerca..
    Questa volta, più che un voto.. è favoreggiamento.

  2. #2
    Siccome probabilmente sono stato un pò criptico, ricostruisco il processo:

    File html:
    Codice PHP:
    [url="templatesXml/artists.xml"]Artists[/url
    richiamo il metodo "__callSection()":
    Codice PHP:
        __callSection:function (docElementfileXmlfileXsl) {
            
    fileXsl 'http://www.****.com/xml/xmlTemp/templatesXml/' fileXsl;
            if (!
    document.getElementById || !document.createTextNode) { return; }
            
            
    ajaxObject.__sendRequest(fileXmlfileHandler.__xmlHandlerfileXslfileHandler.__xslHandler);
        
            if (
    window.ActiveXObject){
                
    document.getElementById(docElement).innerHTML xmlContent.transformNode(xslContent);
                } else {
                var 
    xsltProcessor = new XSLTProcessor();
                
    xsltProcessor.importStylesheet(xslContent);
                var 
    fragment xsltProcessor.transformToFragment(xmlContentdocument);
                
                
    outputDiv document.getElementById(docElement);
                
    outputDiv.appendChild(fragment);
            }
        } 
    Quando invio la richiesta "__sendRequest()" carico i due file Xml e Xsl in modo asincrono. I due gestori dell'evento valorizzano le variabili xmlContent e xslContent:
    Codice PHP:
        __xmlHandler:function () {
            
    //se carica completamente ed è andato tutto a buon fine
            
    if (oHttpReqXml.readyState == && oHttpReqXml.status == 200) {
                
    xmlContent oHttpReqXml.responseXML;
            } else if (
    oHttpReqXml.readyState == || oHttpReqXml.readyState == || oHttpReqXml.readyState == 3) {
                
    document.getElementById('load').innerHTML 'Caricando XML';
                } else {
                
    ajaxObject.__requestFailed(oHttpReqXml);
            }
        },

        
    __xslHandler:function () {
            
    //se carica completamente ed è andato tutto a buon fine
            
    if (oHttpReqXsl.readyState == && oHttpReqXsl.status == 200) {
                
    xslContent oHttpReqXsl.responseXML;
            } else if (
    oHttpReqXsl.readyState == || oHttpReqXsl.readyState == || oHttpReqXsl.readyState == 3) {
                
    document.getElementById('load').innerHTML 'Caricando XSL';
                } else {
                
    ajaxObject.__requestFailed(oHttpReqXsl);
            }
        } 
    Da qui devo passare i due contenuti in una funzione che mi combina Xml e Xsl... questa era la funzione __doTrasform() del post precedente..
    Quello che volevo sapere io è: Come faccio a passare xmlContent e xslContent alla stessa funzione essendo che derivano da due gestori diversi???

    ps. Ho già provato a fare una chiamata al metodo __doTrasform() da tutti e due i gestori ma mi ritorna che uno dei due argomenti non sono valorizzati come è ovvio che sia.. credo
    :master:
    Codice PHP:
        __xslHandler:function () {
            
    //se carica completamente ed è andato tutto a buon fine
            
    if (oHttpReqXsl.readyState == && oHttpReqXsl.status == 200) {
                
    xslContent oHttpReqXsl.responseXML;
                            
    fileHandler.__doTrasform(docElementxmlContentxslContent); //qui xmlcontent non sarà valorizzato
            
    } else if (oHttpReqXsl.readyState == || oHttpReqXsl.readyState == || oHttpReqXsl.readyState == 3) {
                
    document.getElementById('load').innerHTML 'Caricando XSL';
                } else {
                
    ajaxObject.__requestFailed(oHttpReqXsl);
            } 
    Se qualcuno ha idee..
    Questa volta, più che un voto.. è favoreggiamento.

  3. #3
    problema risolto, si trattava di un'errore sul foglio XSL:

    Codice PHP:
    <xsl:applay-templates /> 
    una "a" in piu..

    Per chi volesse approfondire l'argomento, "caricare e trasformare file xml + xsl con ajax"
    son qui..
    Questa volta, più che un voto.. è favoreggiamento.

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