Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 1 odgovor
  • 2.390 pregleda

Najnovija ↓

xml + xslt + cisto js pitanje :) 12.02.2010. u 04:38 · pre 203 meseca #1
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.
Potpis
I'm not in this world to live up to your expectations and you're not in this world to live up to mine.
Re: xml + xslt + cisto js pitanje :) 12.02.2010. u 20:25 · pre 203 meseca #2
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>
Potpis
I'm not in this world to live up to your expectations and you're not in this world to live up to mine.
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme