Toon posts:

[JavaScript/XML] Wijzigen van XSLT

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hoi!

Ik denk dat m'n topic hier wel hoort, aangezien het meer te maken heeft met XML en Javascript dan met (X)HMTL.

Ik verklaar mezelf nader: ik heb een XML file gecreert en dat via een XSL stylesheet in een beetje leuke vorm omgezet, met tabellen. In mijn stylesheet kan ik via:
code:
1
<xsl:apply-templates select="khbo/persoon" order-by="naam"/>

mijn tabellen sorteren op welke xml attribuut dan ook.
Om verschillende sorteringen te maken heb ik dan gewoon drie verschillende XSL's gemaakt.

Oké so far so good.

Nu het echte probleem!
Ik wil via een (X)HTML pagina mijn xml bestand binnenladen. Je moet zelf de sortering kunnen kiezen dmv 3 knoppen. Sortering op naam, studentnummer of op jaar. Dit heb ik gedaan met code van w3schools (http://www.w3schools.com/xsl/xsl_client.asp) dmv Javascript. Het gaat over deze code:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
    <script language="JavaScript">
        var xml = new ActiveXObject("Microsoft.XMLDOM")
        var xsl = new ActiveXObject("Microsoft.XMLDOM")
        xml.async = false
        xsl.async = false
        //xml.load("opleiding.xml")
        function OpNaam()
        {
             xml.load("opleiding.xml")
             xsl.load("opnaam.xsl")
             //document.all.infoTabel.innerHTML = (xml.transformNode(xsl))           
             document.write(xml.transformNode(xsl))          
        }
        function OpNummer()
        {
             xsl.load("opleiding.xsl")
             //document.all.infoTabel.innerHTML = (xml.transformNode(xsl))
             document.write(xml.transformNode(xsl))
             xml.load("opleiding.xml")
        }
        function OpJaar()
        {
            xsl.load("opjaar.xsl")
            //document.all.infoTabel.innerHTML = (xml.transformNode(xsl))
            document.write(xml.transformNode(xsl))
            xml.load("opleiding.xml")
        }
    </script>


Maaar: als ik op een knop klikt opent hij mijn XML bestand niet! Hij opent mijn XSL-stylesheet maar zonder z'n inhoud!

Wie helpt mij uit de brand?
Zoeken op internet levert mij niet zoveel op, ook weet ik nog niet zo goed waar ik op moet zoeken, aangezien het allemaal vrij nieuw is voor me... Overigens werkt mijn XML bestand op en top samen met z'n stylesjeet.

Stukje code uit XML:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?xml version="1.0" encoding="UTF-8"?>
<!-- <?xml-stylesheet type="text/xsl" href="opleiding.xsl"?> -->
<!DOCTYPE khbo [
  <!ELEMENT khbo                (persoon+)>
  <!ELEMENT persoon             (naam, geboortedatum?, functie?, studentnummer, opleiding?, opleidingsjaar?)>
  <!ELEMENT naam                (#PCDATA)>
  <!ELEMENT geboortedatum   (#PCDATA)>
  <!ELEMENT studentnummer   (#PCDATA)>
  <!ELEMENT opleiding       (#PCDATA)>
  <!ELEMENT opleidingsjaar  (#PCDATA)>
]>


<khbo>
    <persoon>
        <naam>Ricardo Cloninger</naam>
        <geboortedatum>26/2/1988</geboortedatum>
        <functie>Student</functie>
        <studentnummer>01</studentnummer>
        <opleiding>Elektronica - ICT</opleiding>
        <opleidingsjaar>1</opleidingsjaar>        
    </persoon>
<!-- uiteraard nog meer mensen gedefinieed, mmar voor dit voorbeeld niet nodig -->
</khbo>


:> :> :> :>

  • André
  • Registratie: Maart 2002
  • Laatst online: 15-04 09:54

André

Analytics dude

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<script type="text/javascript">
  var xml = new ActiveXObject("Microsoft.XMLDOM");
  var xsl = new ActiveXObject("Microsoft.XMLDOM");
  xml.async = false;
  xsl.async = false;
  xml.load("opleiding.xml");

  function OpNaam()
  {
    xsl.load("opnaam.xsl");
    document.getElementById("infoTabel").innerHTML = xml.transformNode(xsl);
  }
  function OpNummer()
  {
    xsl.load("opleiding.xsl");
    document.getElementById("infoTabel").innerHTML = xml.transformNode(xsl);
  }
  function OpJaar()
  {
    xsl.load("opjaar.xsl");
    document.getElementById("infoTabel").innerHTML = xml.transformNode(xsl);
  }
</script>

Zoiets misschien?

  • whoami
  • Registratie: December 2000
  • Laatst online: 21-04 17:18
Javascript en HTML horen toch echt in W&G thuis.

p&w->w&g

https://fgheysels.github.io/


Verwijderd

Topicstarter
André schreef op vrijdag 16 december 2005 @ 22:06:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<script type="text/javascript">
  var xml = new ActiveXObject("Microsoft.XMLDOM");
  var xsl = new ActiveXObject("Microsoft.XMLDOM");
  xml.async = false;
  xsl.async = false;
  xml.load("opleiding.xml");

  function OpNaam()
  {
    xsl.load("opnaam.xsl");
    document.getElementById("infoTabel").innerHTML = xml.transformNode(xsl);
  }
  function OpNummer()
  {
    xsl.load("opleiding.xsl");
    document.getElementById("infoTabel").innerHTML = xml.transformNode(xsl);
  }
  function OpJaar()
  {
    xsl.load("opjaar.xsl");
    document.getElementById("infoTabel").innerHTML = xml.transformNode(xsl);
  }
</script>

Zoiets misschien?
Bedankt voor je antwoord!

Maar dit lost het spijtig genoeg niet op...
Ook zie ik dat IE een error geeft (via dat icoontje linksonder). Deze vermeldt: 'document.getElementById(...)" is leeg of geen object
....
:/

Nog een tip? Iemand?

  • André
  • Registratie: Maart 2002
  • Laatst online: 15-04 09:54

André

Analytics dude

Wat is die infoTabel dan? Is dat een element met een id? Want dat hoort het in dit voorbeeld te zijn. En kun je helemaal niet zelf er achter komen waarom dit fout gaat?