[XML & XSL] Een XML file omzetten naar een nieuwe XML file

Pagina: 1
Acties:
  • 142 views sinds 30-01-2008
  • Reageer

  • didio
  • Registratie: Maart 2001
  • Laatst online: 01-04 09:19

didio

didio.nl

Topicstarter
Waarom werkt dit niet, volgens mij heb ik dit wel eens eerder gedaan. Ik krijg nu alleen maar text op mijn scherm ipv een stukje xml code.

xml file:
code:
1
2
3
4
5
6
<?xml version="1.0" encoding="iso-8859-1" ?>
<?xml-stylesheet type="text/xsl" href="test2.xsl" ?>

<root>
    <test>hallo</test>
</root>


xsl file:
code:
1
2
3
4
5
6
7
8
9
10
11
12
<?xml version="1.0" encoding="iso-8859-1"?>

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="xml" indent="yes" encoding="iso-8859-1"/>

    <xsl:template match="root">
        <root2>
            <test2><xsl:value-of select="test"/></test2> 
        </root2>
    </xsl:template>

</xsl:stylesheet>


wat ik hier wil is als ik de xml file run in explorer een xml output op mijn scherm zien zoals:

code:
1
2
3
<root2>
          <test2>hallo</test2> 
</root2>

[ Voor 25% gewijzigd door didio op 06-01-2005 14:14 ]

weinig tot niks..


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 20:11

Creepy

Tactical Espionage Splatterer

Wat werkt er niet? Wat gaat er mis? Krijg je een foutmelding? Lees ook P&W FAQ - De "quickstart" voor je volgende topicstart ;)

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • didio
  • Registratie: Maart 2001
  • Laatst online: 01-04 09:19

didio

didio.nl

Topicstarter
mijn fout..

Ik krijg geen xml file op mijn scherm maar alleen text..

weinig tot niks..


  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 14:52

mulder

ik spuug op het trottoir

dan moet je de content-type zetten, ie ziet het nu als html

oogjes open, snaveltjes dicht


  • didio
  • Registratie: Maart 2001
  • Laatst online: 01-04 09:19

didio

didio.nl

Topicstarter
Als je dit vanuit een asp pagina doet inderdaad, maar hoe zet ik in een xml of xsl file de contenttype op xml? Daarvoor is toch xsl:output method="xml" ?

weinig tot niks..


  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 12:23
Kijk ook eens in de source. Daar zal je de tags wel zien waarschijnlijk.

  • didio
  • Registratie: Maart 2001
  • Laatst online: 01-04 09:19

didio

didio.nl

Topicstarter
nee dan zie je gewoon de eerste xml file staan, dat is normaal..

weinig tot niks..


Verwijderd

Ik heb je stylesheet even uitgeprobeerd op je xml file en de output is precies zoals je wilt.

Daarom vraag ik me nu even hardop af, wat je precies bedoelt met: "als ik de xml file run in explorer".

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

Geef eens een standaard namespace op in je document element (van de xsl). IE heeft de neiging html te "assumen" tenzij een andere namespace is opgegeven voor de elementen.

edit:
Wat ook nog kan helpen is een processing instruction in je stylesheet opnemen. <xsl:processing-instruction name="xml">encoding="ISO-8859-1"</xsl:processing-instruction>

zie http://www.w3.org/TR/xslt...g-Processing-Instructions

[ Voor 53% gewijzigd door drm op 06-01-2005 15:06 ]

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • didio
  • Registratie: Maart 2001
  • Laatst online: 01-04 09:19

didio

didio.nl

Topicstarter
Verwijderd schreef op donderdag 06 januari 2005 @ 14:58:
Ik heb je stylesheet even uitgeprobeerd op je xml file en de output is precies zoals je wilt.

Daarom vraag ik me nu even hardop af, wat je precies bedoelt met: "als ik de xml file run in explorer".
Ik bedoel daarmee, als ik de xml file laad in IE, jij krijgt dan een xml output op je scherm? Ik zie alleen "hallo" staan.

weinig tot niks..


  • didio
  • Registratie: Maart 2001
  • Laatst online: 01-04 09:19

didio

didio.nl

Topicstarter
na nog wat extra zoeken in google kwam ik nog iemand tegen die dit niet voor elkaar kreeg, en waar ook werd verteld dat dit niet mogelijk is, niet zonder tussenkomst van asp of zoiets..

Ik neem aan dat xml to xml met alleen maar xml en xsl niet mogelijk is..

weinig tot niks..


  • didio
  • Registratie: Maart 2001
  • Laatst online: 01-04 09:19

didio

didio.nl

Topicstarter
drm schreef op donderdag 06 januari 2005 @ 15:03:
Geef eens een standaard namespace op in je document element (van de xsl). IE heeft de neiging html te "assumen" tenzij een andere namespace is opgegeven voor de elementen.

edit:
Wat ook nog kan helpen is een processing instruction in je stylesheet opnemen. <xsl:processing-instruction name="xml">encoding="ISO-8859-1"</xsl:processing-instruction>

zie http://www.w3.org/TR/xslt...g-Processing-Instructions
hier komt ik verder ook niet uit.. niets blijkt te werken..

weinig tot niks..


  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

didio:
Ik neem aan dat xml to xml met alleen maar xml en xsl niet mogelijk is..
Kijk, het is maar net hoe IE het presenteert, he. Wat IE normaal gesproken doet is gewoon een default stylesheet aan een XML document hangen waarmee je zo'n boomstructuurtje met dichtklap-dingetjes te zien krijgt. Als jij er dan een custom stylesheet aanhangt (dat doe je feitelijk) dan is het op zich wel te verwachten dat IE na het toepassen van die stylesheet niet nog eens zijn eigen stylesheet op de getransformeerde xml toepast. Dat wil natuurlijk nog niet zeggen dat de XML niet getransformeerd wordt. Dat kun je het beste even checken door gewone character data in je XSL op te nemen, zodat je kunt zien of de XSL wel daadwerkelijk toegepast wordt.

Kortom: Dat jij geen XML boompje ziet zoals je gewend bent wil nog niet zeggen dat het geen XML is wat je ziet.

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


Verwijderd

didio schreef op donderdag 06 januari 2005 @ 15:41:
[...]


Ik bedoel daarmee, als ik de xml file laad in IE, jij krijgt dan een xml output op je scherm? Ik zie alleen "hallo" staan.
Ja, maar je mag van een HTML Browser ook niet verwachten dat 'ie XML begrijpt.
Je mag ook niet zeuren als je een PDF document wilt bekijken met Microsoft WORD.
(om maar eens een leip voorbeeld te geven).

Verwijderd

didio schreef op donderdag 06 januari 2005 @ 16:04:
Ik neem aan dat xml to xml met alleen maar xml en xsl niet mogelijk is..
Dit zou wel heel erg ernstig zijn als het waar was. Maar als het ook echt waar was, dan had het volledig aan MSIE gelegen, want het hele doel van XSL is het transformen van XML tot XML/XHTML/HTML/etc.

Verwijderd

want het hele doel van XSL is het transformen van XML tot XML/XHTML/HTML/etc.
Dat is niet helemaal waar. Het hele doel van XSL is het opmaken van de data die in je XML bestand staat. zie je XML als een "database" met gegevens. XSL zorgt er gewoon voor dat de data opgemaakt word.

Het omzetten van XML naar HTML doe je bijvoorbeeld met PHP.

  • w3news
  • Registratie: Mei 2004
  • Laatst online: 09-03 10:15
De uitvoer is wel degelijk xml, alleen het ontbreken van een dtd is denk ik het probleem, de browser weet niet wat hij er mee aan moet.
Creer je eigen dtd er voor, misschien helpt dat.

Een beter internet begint bij jezelf...


Verwijderd

ja het is wel degelijk xml, maar geen html / xhtml zoals peter.o zei :>

  • w3news
  • Registratie: Mei 2004
  • Laatst online: 09-03 10:15
Zorg er in iedergeval voor dat het valid en well-formed is
Dus creer eerst maar eens dtd's er bij, zodat het valid wordt.
Opdeze manier: http://alpha.w3news.org/index-xml2.php
<!DOCTYPE xpl SYSTEM "http://alpha.w3news.org/php.dtd">

http://validator.w3.org/c...Findex-xml2.php;verbose=1
http://validator.w3.org/c...utomatically%29&verbose=1

Het is dan geen xsl wat er wordt gebruikt, maar wel valid en well-formed

[ Voor 74% gewijzigd door w3news op 07-01-2005 16:44 ]

Een beter internet begint bij jezelf...


  • w3news
  • Registratie: Mei 2004
  • Laatst online: 09-03 10:15

Een beter internet begint bij jezelf...


Verwijderd

Verwijderd schreef op vrijdag 07 januari 2005 @ 16:38:
ja het is wel degelijk xml, maar geen html / xhtml zoals peter.o zei :>
Uhm, misschien definieerde ik mezelf inderdaad niet goed, maar...

van http://www.w3.org/TR/xslt:
A transformation expressed in XSLT describes rules for transforming a source tree into a result tree.
Dus een source tree en een result tree. Right? Wat klopte er dan niet aan
... want het hele doel van XSL is het transformen van XML tot XML/XHTML/HTML/etc.
?

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

Klopt prima. Je kunt er zelfs nog veel meer mee, anders zou er geen 'text' output-method bestaan.

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz

Pagina: 1