Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

xml + xslt + cisto js pitanje :)

[es] :: Javascript i AJAX :: xml + xslt + cisto js pitanje :)

[ Pregleda: 1745 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

MilosDj
Milos Djuric
Belgrade

Član broj: 14174
Poruke: 307
93.86.144.*



+4 Profil

icon xml + xslt + cisto js pitanje :)12.02.2010. u 03:38 - pre 172 meseci
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.
I'm not in this world to live up to your expectations and you're not in this world to live up to mine.
 
Odgovor na temu

MilosDj
Milos Djuric
Belgrade

Član broj: 14174
Poruke: 307
109.93.121.*



+4 Profil

icon Re: xml + xslt + cisto js pitanje :)12.02.2010. u 19:25 - pre 172 meseci
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>

I'm not in this world to live up to your expectations and you're not in this world to live up to mine.
 
Odgovor na temu

[es] :: Javascript i AJAX :: xml + xslt + cisto js pitanje :)

[ Pregleda: 1745 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.