[xml-xsl] Frames Firefox incompatibel

Pagina: 1
Acties:

  • Tybo
  • Registratie: September 2005
  • Laatst online: 25-08-2025

Tybo

010101011110010101??

Topicstarter
geachte,

volgende code:

<html>
<head>
<title></title>
</head>
<frameset cols="240,*" framespacing="0" frameborder="0">
<frame name="menukol" src="default.htm" />
<frameset rows="70,*">
<frame name="menu" src="menu.htm" />
<frame name="main" src="xmlxsl2.htm?xmlFile=windsor.xml&xslFile=nieuws.xsl" />
</frameset>
</frameset>
<noframes>
<body>test
</body>
</noframes>
</html>

Dit lukt perfect in IE, de frames worden beiden netjes opgevuld met gegevens uit de XML file. Ik heb al gezocht op google en op GOT. Is er een mogelijkheid om alles in ook in Firefox te laten werken? Telkens als ik een bvb:
xmlxsl2.htm?xmlFile=windsor.xml&xslFile=nieuws.xsl
verwijzing doe naar een extern script werkt dit dus niet, hij toont gewoon een lege pagina? :? (enkel in firefox)

Dank u,

[ Voor 41% gewijzigd door Tybo op 03-10-2005 13:16 ]

SvennieG


  • GX
  • Registratie: Augustus 2000
  • Laatst online: 14-05-2025

GX

Nee.

als je een xml wil parsen met xslt kan je beter gewoon de xsl-file opgeven in de xml-file.

XML:
1
<?xml-stylesheet type="text/xsl" href="/xslt/layout.xsl"?>


Dit werkt echter bijna alleen in IE en Firefox, Opera pas vanaf de volgende versie, en wanneer safari zo slim word weet ik nog niet.

Een andere oplossing is om je xmlfile te laten parsen door een extern script, zoals je mogelijk in je xmlxsl2.htm hebt staan.

  • Tybo
  • Registratie: September 2005
  • Laatst online: 25-08-2025

Tybo

010101011110010101??

Topicstarter
GX schreef op maandag 03 oktober 2005 @ 13:26:
als je een xml wil parsen met xslt kan je beter gewoon de xsl-file opgeven in de xml-file.

XML:
1
<?xml-stylesheet type="text/xsl" href="/xslt/layout.xsl"?>


Dit werkt echter bijna alleen in IE en Firefox, Opera pas vanaf de volgende versie, en wanneer safari zo slim word weet ik nog niet.

Een andere oplossing is om je xmlfile te laten parsen door een extern script, zoals je mogelijk in je xmlxsl2.htm hebt staan.
Hij wordt geparsed in een extern script. Je zegt dat het in Firefox wel zou moeten werken? Vreemd, ik heb weer alle geluk van de wereld dat ie niet werkt.

Btw: Ik heb firefox 1.6

SvennieG


  • GX
  • Registratie: Augustus 2000
  • Laatst online: 14-05-2025

GX

Nee.

Anders post je even het script dat het zou moeten parsen.

Firefox en IE hebben trouwens hun eigen XML <--> XSLT parse apparaat, dus dat hoeft eigenlijk een extern script niet te doen.

  • Tybo
  • Registratie: September 2005
  • Laatst online: 25-08-2025

Tybo

010101011110010101??

Topicstarter
Inhoud van de xmlxsl2.htm-file:

XML:
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <!-- ******************************************************************************************************************
    This page combines an xml document with an xsl document  by reading the offered querystring xmlxsl2.htm ? xmlFile="xmlFile.xml" & xslFile="xslFile.xsl"    
****************************************************************************************************************************-->
        <title>XML  &amp;  XSL Preview</title>
        <script type="text/javascript">
    <!--
    function validate() {
        var args = unescape(document.location.search);      
        args = args.substring(1, args.length);
        var aArgs = args.split('&');
        
        var xmlurl = aArgs[0].substring(8, aArgs[0].length );
        var xslurl = aArgs[1].substring(8, aArgs[1].length );
        //alert (xmlurl + " - " + xslurl )
        // Inlezen XML
        var xmldoc = new ActiveXObject ("MSXML2.DOMDocument");      
        xmldoc.load(xmlurl);
        var errorXML = xmldoc.parseError;
        if (errorXML.errorCode != 0 ) {
            xmlERROR.innerHTML = '<center>Source XML Error: <span style="color:red">' +errorXML.reason  + '<br /> Line : '+errorXML.line + ' - position : ' + errorXML.position + '</span></center>';
            return;
        }
            
        
        // Inlezen XSL
        var xsldoc = new ActiveXObject("Msxml2.DOMDocument");
        xsldoc.load(xslurl);
        var errorXSL = xsldoc.parseError;
        if (errorXSL.errorCode != 0 ) {             
            xmlERROR.innerHTML = '<center>XSL Error: <span style="color:red">' +errorXSL.reason  + '<br /> Line : '+errorXSL.line + ' - position : ' + errorXSL.position + '</span></center>';
            return;     
        }
                
        var response = xmldoc.transformNode(xsldoc);
        
        document.write(response);
    }
    -->
</script>
</head>

    <body onload="validate()">
    <div id="xmlERROR">
</div>
    </body>
</html>


Ik heb deze code niet zelf geschreven dus ik kan niet echt allemaal uitleggen wat er staat, ik ben niet goed in het schrijven van die "moeilijke" codes :? mijn excuses daarvoor... :|

SvennieG


  • Tybo
  • Registratie: September 2005
  • Laatst online: 25-08-2025

Tybo

010101011110010101??

Topicstarter
GX schreef op maandag 03 oktober 2005 @ 13:43:
Anders post je even het script dat het zou moeten parsen.

Firefox en IE hebben trouwens hun eigen XML <--> XSLT parse apparaat, dus dat hoeft eigenlijk een extern script niet te doen.
Ik zou wel graag hebben dat ze uiteindelijk zowel op IE als op Firefox zouden werken.

SvennieG


  • Klaus_1250
  • Registratie: December 2000
  • Laatst online: 29-04 18:36
Tybo schreef op maandag 03 oktober 2005 @ 13:54:
[...]


Ik zou wel graag hebben dat ze uiteindelijk zowel op IE als op Firefox zouden werken.
Dan moet je het dus niet via bovengenoemd scriptje doen. Dat is Windows en IE-only. Begin gewoon eens met de xml-files te maken en er intern een xslt-file aan te koppelen.

  • Tybo
  • Registratie: September 2005
  • Laatst online: 25-08-2025

Tybo

010101011110010101??

Topicstarter
Klaus_1250 schreef op maandag 03 oktober 2005 @ 14:01:
[...]


Dan moet je het dus niet via bovengenoemd scriptje doen. Dat is Windows en IE-only. Begin gewoon eens met de xml-files te maken en er intern een xslt-file aan te koppelen.
Dat lukt me al een tijdje, maar das niet echt relevant met mijn probleem. Ik moet meerdere xsl's koppelen aan mijn xml file. Dus één xsl file per xml is niet echt handig in mijn situatie. Of begrijp ik je verkeerd? :?

SvennieG


  • GX
  • Registratie: Augustus 2000
  • Laatst online: 14-05-2025

GX

Nee.

Per xml kan je maar 1 xslt koppelen, ik vraag me af waarom je nog een ander xslt aan je xml zou willen koppelen.

  • Tybo
  • Registratie: September 2005
  • Laatst online: 25-08-2025

Tybo

010101011110010101??

Topicstarter
GX schreef op maandag 03 oktober 2005 @ 14:21:
Per xml kan je maar 1 xslt koppelen, ik vraag me af waarom je nog een ander xslt aan je xml zou willen koppelen.
situatie: Ik heb 3 frames (ééntje boven, ééntje links en ééntje rechts)
als de bovenste frame (menu) op een link wordt gedrukt worden zowel de linkerframe als de rechterframe met elk een aparte xsl getransformeerd.
Zodat ik dus op mijn rechterframe andere info krijg dan op mijn linkerframe. Is dit nu zo raar om dat op die manier te doen, of ligt dat aan mij?

Als ik andere info wil verkrijgen op mijn éne frame dan op mijn andere kan ik toch moeilijke dezelfde xsl file gebruiken? Of ben ik mis?

help... :|

SvennieG


  • GX
  • Registratie: Augustus 2000
  • Laatst online: 14-05-2025

GX

Nee.

Als je toch al kiest voor een frameset, kan je ook voor je menu een apart xml bestand aanhouden, en die met zijn eigen xslt parsen. Ik dacht al dat je dat had omdat in je frameset "menu.html" hebt staan...

Anders kan je allicht beter gebruik maken van een goede indeling van layers en daarin de content van die ene xml parsen, maar dat zeg ik alleen maar omdat ik het niet zo heb op frames ;)

  • VlaFlip
  • Registratie: Februari 2000
  • Laatst online: 03-12-2025

VlaFlip

format c: , weg d'r mee!!

zo te zien mij gebruikt je parsescript activex objectjes en volgens mij vindt firefox dat niet lief.

zowiezo zal dit dus nooit iets kunnen doen voor een client op een niet-windows-bak, aangezien je daar activex echt wel kan vergeten...

Geef je muis af en toe een stukkie kaas


  • Tybo
  • Registratie: September 2005
  • Laatst online: 25-08-2025

Tybo

010101011110010101??

Topicstarter
VlaFlip schreef op maandag 03 oktober 2005 @ 16:09:
zo te zien mij gebruikt je parsescript activex objectjes en volgens mij vindt firefox dat niet lief.

zowiezo zal dit dus nooit iets kunnen doen voor een client op een niet-windows-bak, aangezien je daar activex echt wel kan vergeten...
Met alle respect, maar ik vrees dat de mensen die deze pagina's gaan bekijken allemaal windows gebruikers zullen zijn ;) Ik ben enkel bekommerd omdat ze wel eens andere browsers zouden kunnen gebruiken.

SvennieG


  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Tybo schreef op maandag 03 oktober 2005 @ 16:18:
[...]


Met alle respect, maar ik vrees dat de mensen die deze pagina's gaan bekijken allemaal windows gebruikers zullen zijn ;) Ik ben enkel bekommerd omdat ze wel eens andere browsers zouden kunnen gebruiken.
Gebruik dan minstens een crossbrowser variant voor XmlDom, of nog beter: transformeer je XML serverside en stuur gewoon (X)HTML naar de client ;)

De javascript die je gebruikt is sowieso niet forwards compatible met de XHTML standaard waarin zaken als document.write uit den boze zijn, en je hele JS block als een comment zal worden gezien.
location is trouwens een property van het window object.

[ Voor 20% gewijzigd door crisp op 03-10-2005 18:03 ]

Intentionally left blank


  • Klaus_1250
  • Registratie: December 2000
  • Laatst online: 29-04 18:36
crisp schreef op maandag 03 oktober 2005 @ 18:01:
[...]
of nog beter: transformeer je XML serverside en stuur gewoon (X)HTML naar de client ;)
Waarom is dat beter? Ik kan net zoveel redenen bedenken waarom het beter is, als waarom het niet beter is.

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Klaus_1250 schreef op dinsdag 04 oktober 2005 @ 00:30:
[...]


Waarom is dat beter? Ik kan net zoveel redenen bedenken waarom het beter is, als waarom het niet beter is.
1 reden: je bent dan niet afhankelijk van de mogelijkheden van de client ;)

Intentionally left blank


  • Tybo
  • Registratie: September 2005
  • Laatst online: 25-08-2025

Tybo

010101011110010101??

Topicstarter
crisp schreef op maandag 03 oktober 2005 @ 18:01:
[...]

Gebruik dan minstens een crossbrowser variant voor XmlDom, of nog beter: transformeer je XML serverside en stuur gewoon (X)HTML naar de client ;)
Serverside is uitgesloten, ik wil het makkelijk en kosteloos houden. Ik ga heus niet de hele dag een pc laten aanliggen. Laat staan betalen voor hosting. 't Is gewoon een hobbysite voor een sportclubke, die wat meer statistieken willen. Ik ben dus van plan om dat op mijn webspace te laten draaien en dan de xml aanpassen met een vb.net prog enzo telkens te uploaden bij veranderingen. Toch bedankt voor de reply ;)

SvennieG


  • HawVer
  • Registratie: Februari 2002
  • Laatst online: 26-04 23:06
crisp schreef op dinsdag 04 oktober 2005 @ 00:36:
[...]

1 reden: je bent dan niet afhankelijk van de mogelijkheden van de client ;)
Het nadeel daaraan is dat je weer afhankelijk van je server bent. :) Wil je een beetje lekker gebruik maken van XSLT begin je toch al snel aan Xalan te denken. Met php kun je ook XSLT-en. Maar dan moet je gebruik maken van een extra module voor php. Ik heb geen idee of sablotron voor php wat is. http://www.gingerall.com/charlie/ga/xml/p_sab.xml

http://hawvie.deviantart.com/

Pagina: 1