[ MilosDj @ 12.02.2010. 03:38 ] @
Hocu da ucitam xml i uradim xslt transformaciju. Ovaj kod to jako lepo radi.

Code:
<script type="text/javascript">
<!--  // hide script from older browsers ;)
function loadXMLDoc(dname){
    if (window.XMLHttpRequest){xhttp=new XMLHttpRequest();}
    else{xhttp=new ActiveXObject("Microsoft.XMLHTTP");}
    xhttp.open("GET",dname,false);
    xhttp.send("");
return xhttp.responseXML;
} // end f loadxlmdoc

function transform(xml_source,xsl_style){
    xml=loadXMLDoc(xml_source);
    xsl=loadXMLDoc(xsl_style);

    if (window.ActiveXObject) // IE
    {
        ex=xml.transformNode(xsl);
        document.getElementById("example").innerHTML=ex;
    }
    else if (document.implementation && document.implementation.createDocument) // FF
    {
        xsltProcessor=new XSLTProcessor();
        xsltProcessor.importStylesheet(xsl);
        resultDocument = xsltProcessor.transformToFragment(xml,document);
        document.getElementById("ekran").appendChild(resultDocument); // replaceChild
    }
} // end f transform(source,style);
//-->
</script>

html:
<a href="javascript:transform('file.xml','transform1.xsl')">for</a>
<a href="javascript:transform('file.xml','transform2.xsl')">for</a>, itd...
Code je sa w3schools, prepravio sam ga da prima imena fajlova. To radi, ali svaki klik na link zaista apenduje sadrzaj. To ne zelim.
Hocu da link prikaze samo jednu transformaciju.
Kapiram da mi treba neki
if(vec ima txt){removeChild}else{appendChild} ili neki CLS pre appenda ali mi uopste nisu jasni document objekti ni append/removeChild Document Fragments.
Tek veze nemam kako to uraditi za IE.
[ MilosDj @ 12.02.2010. 19:25 ] @
Uspeo sam Evo ceo kod ako ikad ikome zatreba.
Ovo brise nodove while (ekran.firstChild){ekran.removeChild(ekran.firstChild);}

Da li neko zna neki ok tutorial za js DOM. I dalje ne shvatam taj koncept...

Code:
<html>
<head><title>Services transformation</title>

<script type="text/javascript">
<!--  // hide script from older browsers ;)
//document.write("Hello World!");  // as printf  ;if more nar1;nar1;
//alert("This alert box was called with the onload event");
function test(a,b){
    document.write("XML: "+a+" XSL: "+b+"<br />");
} // end function test


function loadXMLDoc(dname){

    if (window.XMLHttpRequest){xhttp=new XMLHttpRequest();}
    else{xhttp=new ActiveXObject("Microsoft.XMLHTTP");}
    xhttp.open("GET",dname,false);
    xhttp.send("");
return xhttp.responseXML;
} // end f loadxlmdoc

function transform(xml_source,xsl_style){
    xml=loadXMLDoc(xml_source);
    xsl=loadXMLDoc(xsl_style);

    if (window.ActiveXObject) // IE
    {
        ex=xml.transformNode(xsl);
        document.getElementById("ekran").innerHTML=ex;
    }
    else if (document.implementation && document.implementation.createDocument) // Mozilla, Firefox, Opera...
    {
        xsltProcessor=new XSLTProcessor();
        xsltProcessor.importStylesheet(xsl);
        resultDocument = xsltProcessor.transformToFragment(xml,document);
        var ekran=document.getElementById("ekran");
        while (ekran.firstChild){ekran.removeChild(ekran.firstChild);}
        ekran.appendChild(resultDocument);
        
    }
} // end f transform(source,style);


//-->
</script>
</head>
<body>
<a href="javascript:transform('services.xml','services_for.xsl')">for</a> &nbsp;&nbsp;
<a href="javascript:transform('services.xml','services_push.xsl')">push</a>&nbsp;&nbsp;
<a href="javascript:transform('services.xml','services_text.xsl')">text</a>&nbsp;&nbsp;
<a href="javascript:transform('services.xml','services_reg.xsl')">regedit</a>&nbsp;&nbsp;
<hr />
<div id="ekran" />
</body>
</html>