[PHP] XSLT parsen, header onnodig

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Erik Jan
  • Registratie: Juni 1999
  • Niet online

Erik Jan

Langzaam en zeker

Topicstarter
Ik ben net nieuw met XML, dus vergeef mij als ik wat termen door elkaar haal :)

Met behulp van Sablotron parse ik een XML en een XSLT naar HTML. Voor ondersteuning van oude browsers laat ik dit door PHP doen en gebruik ik verder niks spectaculairs. Sablotron vindt het echter nodig om hier steeds een XML header bij toe te voegen.

Een voorbeeldje, bla.php:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<html>
  <head>
    <title>Test</title>
  </head>
  <body>
    <?php
      $XMLData = '<?xml version="1.0" encoding="ISO-8859-1"?>
      <sesamstraat>
        <bert>aaaa</bert>
        <ernie>bbbb</ernie>
      </sesamstraat>';
  
      $PID = XSLT_Create();
      $HTML = XSLT_Process($PID, 'arg:/_xml', '/path/naar/bla.xsl',
      NULL, Array('/_xml' => $XMLData));
      if (!$HTML)
        die('XSLT processing error: '.XSLT_Error($PID));
      XSLT_Free($PID);
      print $HTML;
    ?>
  </body>
</html>
bla.xsl:
PHP:
1
2
3
4
5
6
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:template match="sesamstraat">
    <xsl:value-of select="bert"/> | <xsl:value-of select="ernie"/>
  </xsl:template>
</xsl:stylesheet>
bla.php door PHP 4.3.2 heen, geeft dit:
PHP:
1
2
3
4
5
6
7
8
<html>
  <head>
    <title>Test</title>
  </head>
  <body>
    <?xml version="1.0" encoding="UTF-8"?>aaaa | bbbb
  </body>
</html>
Nu wil ik dus op een nette, verantwoorde manier van die "<?xml version="1.0" encoding="UTF-8"?>" af. Weet iemand hoe? Ben ik zo, met alle conventies in het achterhoofd gehouden, goed bezig?

[ Voor 72% gewijzigd door Erik Jan op 15-07-2003 15:45 . Reden: anti-layout-upfuck ]

This can no longer be ignored.


Acties:
  • 0 Henk 'm!

  • DeverauX
  • Registratie: Februari 2002
  • Niet online

DeverauX

Focus is everything

Misschien dat het helpt in je xsl de output method te specificeren?
code:
1
<xsl:output method="html"/>

...whatever was distasteful or unpleasant or uncomfortable or painful - music could always soothe that.
All you have to do is reach out to beauty.
Quincy Jones


Acties:
  • 0 Henk 'm!

  • Erik Jan
  • Registratie: Juni 1999
  • Niet online

Erik Jan

Langzaam en zeker

Topicstarter
In de roos!

Dat element kende ik nog niet, raar dat zoiets als de output method niet verplicht (expliciet) moet worden opgegeven.

Tnx DeverauX en eventuele anderen die niet zo supersnel waren :)

This can no longer be ignored.


Acties:
  • 0 Henk 'm!

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 07-10-2022
Dit is ook een oplossing:

omit-xml-declaration

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment