Ciao a tutti devo realizzare una pagina html che attraverso javascript mi carica degli xml e attraverso xslt li trasforma in html.Ho creato una index.xml alla quale ho associato tutte le varie funzioni javascript della pagina e una libreria con tutte le funzioni js a me necessarie.
ma essendo alle prime armi con javascript non riesco a trovare l'errore.
Ossia gli html me li carica ma non rispetta la formattazione dell'xsl.Io non sono capace di trovare l'errore se qualche anima buona mi aiuta..mando il file libreria.js
Ciao e grazie a tutti.
function loadXMLDoc(dname)
{
var xmlDoc;
try //Internet Explorer
{
xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async=true;
}
catch(e)
{
try //Firefox, Mozilla, Opera, etc.
{
xmlDoc=document.implementation.createDocument(""," ",null);
xmlDoc.async=false;
}
catch(e) {alert(e.message);}
}
try
{
xmlDoc.load(dname);
return(xmlDoc);
}
catch(e) {alert(e.message);}
return(null);
}

function prendiElementoNomeTag(documento,nome)
{
var elemento;
if(documento.getElementByTagName)
elemento = documento.getElementTagName(nome);
else
alert("Errore: getElementTagName, non supportato");
return elemento;
}

function prendiElementoDaId(documento,id_elemento)
{
var elemento;
if(documento.getElementById)
elemento = documento.getElementById(id_elemento);
else
if(documento.all)
elemento = document.all[id_elemento]//documento.all.namedItem(id_elemento);
else
alert("Errore: nessun oggetto supportato per la ricerca!");
return elemento;
}

function cercaContenuto(a, nomeNodo)
{

var objs;
try{
objs = a.all.tags(nomeNodo);
}catch(e){
try{
objs = a.getElementsByTagName(nomeNodo);
}catch(e){
try{
objs = a.layers[nomeNodo];
}catch(e){ alert('Sorry, Your browser does not support our navigation system'); }
}
}
return objs;
}

function leggiContenuto(a, nomeNodo,posizione)
{

var r;
try{

r = a[posizione].nodeValue;
}catch(er){
try{
r = a.getElementsByTagName(nomeNodo).item(posizione).f irstChild.nodeValue;


}catch(er){alert("Errore in lettura dati");}
}
return r;
}



function pars(xmlDoc)
{

var x = xmlDoc.getElementsByTagName("capitolo");
risultato += x.item(0).firstchild.nodeName;
risultato += leggiContenuto(x,"capitolo");
return risultato;



//risultato += leggiContenuto(x,"titolo") + ":[/b] ";




var x = xmlDoc.getElementsByTagName("capitolo");
risultato += x.item(0).firstchild.nodeName;
risultato += leggiContenuto(x,"lista_ordinata");
return risultato;




x = xmlDoc.getElementsByTagName("paragrafo_semplice");
for(i=0;i<x.length;i++)
{
risultato += x.item(0).firstChild.nodeValue;
}

return risultato;
}
function XMLHttp()
{
try{
// la versione 6 di IE ha un nome differente per il tipo di oggetto ActiveX
return (new ActiveXObject("MSXML2.XMLHTTP"))
}
catch(err)
{
try{
// le versioni 5 e 5.5 invece sfruttano lo stesso nome
return (new ActiveXObject("Microsoft.XMLHTTP"))
}
catch(err)
{
try{

if (window.XMLHttpRequest) // Mozilla, Safari,...
{
req = new XMLHttpRequest();
if (req.overrideMimeType)
req.overrideMimeType('text/xml');
return req;
}
}
catch(err){
// il browser non lo supporta
return null
}
}
}
}


function scriviStile(e, hh, ww) {
//alert("scrivostile");
var result = "<style type='text/css'>";

result += "body {margin:0;padding:0;}";

result += "html {margin:0;padding:0;font:100%/1.5 sans-serif;background:#fff;color:#333;}";
result += "#header {position: absolute;width: "+ww+";height: 80px;top: 0;right: 0;bottom: auto;left: 0;overflow: hidden;";
result += "background:#ae9;color:#f00;border-top:1px solid #666;font-size:x-small;font-style:normal;text-align:center;}";
result += "#header div {float:left;width:120px;height:80px;margin-right:0;background:#666;color:#fff;";
result += "font-size:2.5em;font-weight:bold;text-align:center;line-height:2.5em;}";
result += "#sidebar {position: absolute;width: 120px;height: "+(hh-90)+";top: 80px;bottom: 30px;left: 0;margin:0;padding:0;overflow: hidden;background:#aaa;}";
result += "#sidebar a:link,#sidebar a:visited {color:#fff;text-decoration:none;}";
result += "#sidebar a:hover,#sidebar a:focus {color:#fc6;}";
result += "#sidebar ul{margin:0;left: 0;padding:0em 0em;}";
result += "#sidebar ul li {margin:0;left: 0;padding:0.1em 0.1em;list-style-type:none;border-bottom:1px solid #fff;}";
result += "#sidebar span {position:absolute;bottom:0;left: 0;width: 120px;background:#fc6;color:#666;font-size:smaller;visibility:hidden;}";
result += "#sidebar a:hover span,#sidebar a:focus span {visibility:visible;}";
result += "#main {position: absolute;width: "+(ww-120)+";height: "+(hh-80)+";background:#eee;top: 80px;right: 0;bottom: 30px;left: 120px;overflow: auto;}";
result += "#main ul{margin:0;left: 0;padding:0em 0em;}";
result += "#main ul li {margin:0;left: 0;padding:0.1em 0.1em;list-style-type:none;border-bottom:1px solid #111;}";
result += "#info {font-size:x-small;font-style:normal;}";

result += "</style>";
//alert("finito scrivostile");
e.innerHTML = result;
}
function stampa(doc)
{
var stampa = window.print();
// onclick="window.print();return false;"
}






function scriviTitolo(el,xmlDoc)
{
var xml,x,txt;
var dXML,opz;
if( infoBrowser() == "Internet Explorer")
{
dXML = loadXMLDoc(xmlDoc);
var result = "<title>";
result += leggiContenuto(dXML,"titolo",0);
result += "</title>";
el.innerHTML = result;
}
else
{
var objHTTP = XMLHttp();
if(objHTTP)
{
try{
objHTTP.open("GET", xmlDoc, true);
// rimozione dell'header "connection" come "keep alive"
//objHTTP.setRequestHeader("connection", "close");
objHTTP.onreadystatechange = function()
{
if(objHTTP.readyState === 4)
{
if(objHTTP.status == 200 || objHTTP.status == 0)
{
// verifica della validità dell'XML restituito dal server
if(objHTTP.responseXML)
{
dXML = objHTTP.responseXML;
var result = "<title>";
result += leggiContenuto(dXML,"titolo",0);
result += "</title>";
el.innerHTML = result;
}
else
{
alert("Errore!");
}

}
else
{
alert("Operazione fallita, errore numero " + objHTTP.status);
}
}
}

// invio richiesta
objHTTP.send(null);
}catch(err){alert(err.message);}
}
}
}


function scriviInfo(el, browser, versione, sistemaOperativo, height, width)
{
var result = "
Browser:<center>" + browser + "</center>";
result += "versione:<center>" + versione + "</center>";
result += "S.O.:<center>" + sistemaOperativo + "</center>";
result += "
<center>[b]altezza:[b]" + height + "
[b]larghezza:[b]" + width + "</center>";
el.innerHTML = result;
}

function scriviHeader(el,xmlDoc)
{
var xml,x,txt;
var dXML,opz;
if( infoBrowser() == "Internet Explorer")
{
dXML = loadXMLDoc(xmlDoc);
var result = "<h1>";
result += leggiContenuto(dXML,"testo",0);
result += "</h1>";
el.innerHTML = result;
}
else
{
var objHTTP = XMLHttp();
if(objHTTP)
{
try{
objHTTP.open("GET", xmlDoc, true);
// rimozione dell'header "connection" come "keep alive"
//objHTTP.setRequestHeader("connection", "close");
objHTTP.onreadystatechange = function()
{
if(objHTTP.readyState === 4)
{
if(objHTTP.status == 200 || objHTTP.status == 0)
{
//var elemento = xmlDoc.getElement
// verifica della validità dell'XML restituito dal server
if(objHTTP.responseXML)
{
dXML = objHTTP.responseXML;
var result = "<h1>";
result += leggiContenuto(dXML,"testo",0);
result += "</h1>";
el.innerHTML = result;
}
else
{
alert("Errore!");
}

}
else
{
alert("Operazione fallita, errore numero " + objHTTP.status);
}
}
}

// invio richiesta
objHTTP.send(null);
}catch(err){alert(err.message);}
}
}
}


function scriviMenu(el,xmlDoc)
{
var xml,x,txt;
var dXML,opz;
if( infoBrowser() == "Internet Explorer")
{
dXML = loadXMLDoc(xmlDoc);
opz = cercaContenuto(dXML, "opzione");
var result = "<ul>";
for(var a = 0, b = opz.length; a < b; a++)
{
result += "[*]<a href=\"";
result += leggiContenuto(dXML, "eventoAssociato", a);
result += "\" >" + leggiContenuto(dXML, "nomeOpzione", a);
result += "<span>" + leggiContenuto(dXML, "descrizione", a);
result += "</span></a>";
}
result += "[/list]";
el.innerHTML = result;
}
else

{
var objHTTP = XMLHttp();
if(objHTTP)
{
try{
objHTTP.open("GET", xmlDoc, true);
// rimozione dell'header "connection" come "keep alive"
objHTTP.setRequestHeader("connection", "close");
objHTTP.onreadystatechange = function()
{
if(objHTTP.readyState === 4)
{
if(objHTTP.status == 200 || objHTTP.status == 0)
{
//var elemento = xmlDoc.getElement
// verifica della validità dell'XML restituito dal server
if(objHTTP.responseXML)
{

dXML = objHTTP.responseXML;
opz = cercaContenuto(objHTTP.responseXML, "opzione");
var result = "<ul>";

for(var a = 0, b = opz.length; a < b; a++)
{
result += "[*]<a href=\"";
result += leggiContenuto(dXML, "eventoAssociato", a);
result += "\" >" + leggiContenuto(dXML, "nomeOpzione", a);
result += "<span>" + leggiContenuto(dXML, "descrizione", a);
result += "</span></a>";
}
result += "[/list]";
el.innerHTML = result;
}
else
{
alert("Errore!");
}

}
else
{
alert("Operazione fallita, errore numero " + objHTTP.status);
}
}
}

// invio richiesta
objHTTP.send(null);
}catch(err){alert(err.message);}
}
}
}


// dato un identificatovo visualizza dentro al DIV corrispondente il File
function visualizza(doc,xmlDoc,xslDoc)
{
var browser = infoBrowser();
//alert(browser)
elemento = prendiElementoDaId(doc,"main");
var request = XMLHttp();
if(request)
{

try{
request.open("GET", xmlDoc, true);
// rimozione dell'header "connection" come "keep alive"
request.setRequestHeader("connection", "close");
request.onreadystatechange = function()
{
if(request.readyState === 4)
{
if(request.status == 200 || request.status == 0)
{
if(xmlDoc == 'introduzione.xml')
elemento.innerHTML = request.responseText;
else
{
xml = request.responseXML;
try{
if (browser == "Internet Explorer")
{
xml = request.responseText;
elemento.innerHTML = xml;

}
else
{
elemento.innerHTML = "";
xsl = loadXMLDoc(xslDoc);
var p = (new XSLTProcessor());
p.importStylesheet(xslt);
xml = p.transformToFragment(xml, document);
elemento.appendChild(xml);

}

}catch(err){alert(err.message);}
}

}
else
{
alert("Operazione fallita, errore numero " + request.status);
// errore di caricamento
elemento.innerHTML = "Impossibile leggere il file XML\XSL richiesto.
";
elemento.innerHTML += "Errore riscontrato numero: " + request.status;
}
}
}

// invio richiesta
request.send(null);
}catch(err){alert(err.message);}
}
}

function vai()
{
window.location.href = 'http://www.google.it';

}