XML parsen in de browser (Mozilla/IE6)

Pagina: 1
Acties:

  • MacWolf
  • Registratie: Januari 2004
  • Laatst online: 06-09-2024
Ik heb het volgende probleem:

Ik heb het volgende XML bestand:
code:
1
2
3
4
5
6
7
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="/presentation/main.xsl"?>
<page updated="2004-01-12">
    <content date="2004-01-02">Some test content.</content>
    <content date="2004-01-04">Some new test content.</content>
    <content date="2004-01-10">Some final test content.</content>
</page>


Ik heb het volgende XSL bestand:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" output="text/html">

<xsl:template match="/">
    <html>
        <head>
            <title>Main: <xsl:value-of select="page/@updated" /></title>
    
            <xsl:if test="not(content='')"> 
                <span>
                    <xsl:for-each select="content">
                        <div>
                            <p>Update: <xsl:value-of select="current()/@date" /></p>
                            <p><xsl:value-of select="current()" /></p>
                        </div>
                    </xsl:for-each>
                </span>
            </xsl:if>
        </head>
    </html>
</xsl:template>

</xsl:stylesheet>


Ik wil dit allemaal in de browser parsen, het XML bestand moet het XSL bestand aanroepen. Dit gaat gedeeltelijk goed, want de title wordt in de browser weergegeven, maar ik zie de HTML code (d.m.v. view source) helemaal niet terug. Als ik willekeurige tekst in de HTML hierboven invoeg komt er ook niks van in beeld. Iemand een idee waarom en hoe je dit geheel aan de gang krijgt? Het liefst voor zowel IE6 als Mozilla, maar IE6 is een vereiste.

Microsoft Windows: A thirty-two bit extension and graphical shell to a sixteen-bit patch to an eight-bit operating system originally coded for a four-bit microprocessor which was written by a two-bit company that can't stand one bit of competition.


  • MacWolf
  • Registratie: Januari 2004
  • Laatst online: 06-09-2024
Ik begin trouwens het idee te krijgen dat view source sowieso niet gaat werken, ik doe natuurlijk een view source van een XML document. Ik denk dat ik maar lokaal een XML parser moet installeren om resultaat te zien, tenzij iemand nog een goede suggestie heeft...

Microsoft Windows: A thirty-two bit extension and graphical shell to a sixteen-bit patch to an eight-bit operating system originally coded for a four-bit microprocessor which was written by a two-bit company that can't stand one bit of competition.


  • creative8500
  • Registratie: September 2001
  • Laatst online: 03-01 16:54

creative8500

freedom.

Twee mogelijkheden in Firebird:
  1. View selection source;
  2. DOM Inspector.

  • Clay
  • Registratie: Oktober 1999
  • Laatst online: 25-02 11:17

Clay

cookie erbij?

je bent html in de head aan het zetten. Ik weet niet wat IE doet, maar Moz laat dat iig zekerweten niet zien. Dus zet dat om te beginnen eens in een body. Verder vind ik het zelf een stuk handiger die hele for-each te lozen, en gewoon een apply-templates te gebruiken;

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<xsl:template match="page">
    <html>
        <head>
            <title>Main: <xsl:value-of select="@updated" /></title>            
        </head>
        <body>
            <xsl:apply-templates select="content" />
        </body>
    </html>
</xsl:template>

<xsl:template match="content">
 <div>
    <p>Update: <xsl:value-of select="@date" /></p>
    <p><xsl:apply-templates /></p>
</div>
</xsl:template>


daar bestaan die dingen ook voor :)

[ Voor 19% gewijzigd door Clay op 02-02-2004 21:45 ]

Instagram | Flickr | "Let my music become battle cries" - Frédéric Chopin


Verwijderd

MacWolf schreef op 02 februari 2004 @ 21:01:
Ik begin trouwens het idee te krijgen dat view source sowieso niet gaat werken, ik doe natuurlijk een view source van een XML document. Ik denk dat ik maar lokaal een XML parser moet installeren om resultaat te zien, tenzij iemand nog een goede suggestie heeft...
Installeer anders een tool als XML Spy, daarmee kun je heel eenvoudig dit soort test-scenarios uitvoeren.

  • MacWolf
  • Registratie: Januari 2004
  • Laatst online: 06-09-2024
Clay schreef op 02 februari 2004 @ 21:44:
je bent html in de head aan het zetten. Ik weet niet wat IE doet, maar Moz laat dat iig zekerweten niet zien. Dus zet dat om te beginnen eens in een body. Verder vind ik het zelf een stuk handiger die hele for-each te lozen, en gewoon een apply-templates te gebruiken;

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<xsl:template match="page">
    <html>
        <head>
            <title>Main: <xsl:value-of select="@updated" /></title>            
        </head>
        <body>
            <xsl:apply-templates select="content" />
        </body>
    </html>
</xsl:template>

<xsl:template match="content">
 <div>
    <p>Update: <xsl:value-of select="@date" /></p>
    <p><xsl:apply-templates /></p>
</div>
</xsl:template>


daar bestaan die dingen ook voor :)
Ik begrijp je opmerking 'je bent HTML in de head aan het zetten' niet, kun je me uitleggen wat je daarmee bedoeld?

Volgens mij zal dit het resultaat moeten worden:
code:
1
2
3
4
5
6
7
8
9
10
11
12
<html>
  <head>
    <title>Main: 2004-01-12</title>
  </head>
  <body>
    <div>
      <p>Update: 2004-01-02</p>
      <p>Some test content.</p>
    </div>
    (etc...) 
  </body>
</html>


Het is natuurlijk waar dat <xsl:apply-templates /> veel handiger is in deze situaties, dus ik zal die rest wel aanpassen.

In reactie op Blues: ik heb alleen een Mac en daar draait (voor zover ik weet) XML Spy niet op, maar ik weet wel een goed gratis programma dat enigszins vergelijkbaar is, ik zal dat downloaden. Mijn doel is uiteindelijk dat alleen de browser het allemaal parsed en dan denk ik dat zo'n tool niet erg bruikbaar is (je weet nl. nog niet zeker of alles wel werkt in de browser).

Microsoft Windows: A thirty-two bit extension and graphical shell to a sixteen-bit patch to an eight-bit operating system originally coded for a four-bit microprocessor which was written by a two-bit company that can't stand one bit of competition.


  • Dennis
  • Registratie: Februari 2001
  • Laatst online: 09:43
MacWolf schreef op 03 februari 2004 @ 19:06:
Ik begrijp je opmerking 'je bent HTML in de head aan het zetten' niet, kun je me uitleggen wat je daarmee bedoeld?
Zou je dan niet eerst een cursus html volgen ipv meteen met lastige dingen zoals xsl te gaan werken? www.w3schools.com/html

Verwijderd

Wanneer je op je server php gebruikt, kun je ook ff de xslt functies aanzetten...

http://sniptools.com/vaul...a-basic-xslt-tutorial.htm

bovenstaande link geeft een kleine handleiding over hoe je dit makkelijk kan doen. (het werkt natuurlijk ook met IIS).

http://www.sitepoint.com/article/602/ --> dit artikeltje kan je ook wel helpen ;)

  • MacWolf
  • Registratie: Januari 2004
  • Laatst online: 06-09-2024
ddc schreef op 03 februari 2004 @ 20:07:
[...]

Zou je dan niet eerst een cursus html volgen ipv meteen met lastige dingen zoals xsl te gaan werken? www.w3schools.com/html
Dit lijkt bijna een flame... Ik ken mijn HTML wel en weet de structuur, maar keek even over deze fout heen. Nu zie ik ook wat ik fout deed, ik zette al de HTML code in de head tag, maar ik durf te wedden dat het geheel nog niet gaat werken direct in de browser. Ik zal vanavond nog eens thuis kijken, en mijn bevindingen hier aangeven.

Ben trouwens wel meer ervaren met XSL en XML dan met HTML, ik werk er al 1,5 jaar mee...

Microsoft Windows: A thirty-two bit extension and graphical shell to a sixteen-bit patch to an eight-bit operating system originally coded for a four-bit microprocessor which was written by a two-bit company that can't stand one bit of competition.

Pagina: 1