Hoi
Ik probeer verschillende xsl-stylesheets te koppelen aan een xml-bestand. Hier vond ik een aardige introductie van de manier waarop ik dat het beste kon aanpakken en ik ben daar ook heel ver mee gekomen, maar... in mijn xsl-stylesheet heb ik een tabel gedefinieerd met twee kolommen. Als ik het stylesheet direct koppel in het xml-bestand (met een regel als <?xml-stylesheet type="application/xml" href="Lijst.xsl"?>), dan zie ik beide kolommen in mijn browser. Maar als ik het stylesheet verwerk via een php-bestand, dan zie ik slechts één kolom. Heeft iemand enig idee wat ik daaraan kan doen?
Hieronder de code van het php-bestand:
Hieronder de code van het xsl-bestand (Lijst.xsl):
[xml]
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="totaal">
<html>
<head>
<title>Startpagina</title>
</head>
<body>
<h1>Startpagina</h1>
<xsl:for-each select="l"><br/>
<table width="100%">
<tr>
<td valign="top">
<h2>Nieuws</h2>
<xsl:for-each select="r[@class='nieuws']">
<tr>
<td>
<a target="new">
<xsl:attribute name="href">
<xsl:value-of select="."/>
</xsl:attribute>
<xsl:value-of select="@n"/>
</a>
</td>
</tr>
</xsl:for-each>
</td>
<td valign="top">
<h2>Diversen</h2>
<xsl:for-each select="r[@class='diversen']">
<tr>
<td>
<a>
<xsl:attribute name="href">
<xsl:value-of select="."/>
</xsl:attribute>
<xsl:value-of select="@n"/>
</a>
</td>
</tr>
</xsl:for-each>
</td>
</tr>
</table>
</xsl:for-each>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
En hier de code van het xml-bestand (Lijst.xml):
<?xml version="1.0"?>
<!-- <?xml-stylesheet type="application/xml" href="Lijst.xsl"?> -->
<totaal>
<l>
<r class="nieuws" n="Trouw">http://www.trouw.nl</r>
<r class="nieuws" n="De Volkskrant">http://www.volkskrant.nl</r>
<r class="nieuws" n="Nu.nl">http://www.nu.nl</r>
<r class="nieuws" n="Teletekst">http://teletekst.nos.nl/?101-01</r>
<r class="nieuws" n="TAZ">http://www.taz.de</r>
<r class="nieuws" n="IP">http://www.informatieprofessional.nl/home/index.php</r>
<r class="diversen" n="Hotmail">http://www.hotmail.nl</r>
<r class="diversen" n="Postbank">http://www.postbank.nl</r>
<r class="diversen" n="OV">http://www.9292ov.nl/</r>
<r class="diversen" n="KNMI">http://www.knmi.nl</r>
<r class="diversen" n="Buienradar">http://www.buienradar.nl</r>
<r class="kennis" n="Wiki Nl">http://nl.wikipedia.org/wiki/Hoofdpagina</r>
<r class="kennis" n="Wiki Eng.">http://en.wikipedia.org/wiki/Main_Page</r>
<r class="kennis" n="Google">http://www.google.nl</r>
</l>
</totaal>
[/xml]
Ik probeer verschillende xsl-stylesheets te koppelen aan een xml-bestand. Hier vond ik een aardige introductie van de manier waarop ik dat het beste kon aanpakken en ik ben daar ook heel ver mee gekomen, maar... in mijn xsl-stylesheet heb ik een tabel gedefinieerd met twee kolommen. Als ik het stylesheet direct koppel in het xml-bestand (met een regel als <?xml-stylesheet type="application/xml" href="Lijst.xsl"?>), dan zie ik beide kolommen in mijn browser. Maar als ik het stylesheet verwerk via een php-bestand, dan zie ik slechts één kolom. Heeft iemand enig idee wat ik daaraan kan doen?
Hieronder de code van het php-bestand:
PHP:
<?php
$doc = new DOMDocument;
$doc->Load('Lijst.xml');
$xpath = new DOMXPath($doc);
$XslFile="Lijst.xsl";
$xsl = new DOMDocument("1.0");
$xsl->load($XslFile);
$proc = new XSLTProcessor();
$proc->importStyleSheet($xsl);
$dom=$proc->transformToDoc( $doc );
echo "\n\n".$dom->saveXML($dom->documentElement);
?>
[xml]
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="totaal">
<html>
<head>
<title>Startpagina</title>
</head>
<body>
<h1>Startpagina</h1>
<xsl:for-each select="l"><br/>
<table width="100%">
<tr>
<td valign="top">
<h2>Nieuws</h2>
<xsl:for-each select="r[@class='nieuws']">
<tr>
<td>
<a target="new">
<xsl:attribute name="href">
<xsl:value-of select="."/>
</xsl:attribute>
<xsl:value-of select="@n"/>
</a>
</td>
</tr>
</xsl:for-each>
</td>
<td valign="top">
<h2>Diversen</h2>
<xsl:for-each select="r[@class='diversen']">
<tr>
<td>
<a>
<xsl:attribute name="href">
<xsl:value-of select="."/>
</xsl:attribute>
<xsl:value-of select="@n"/>
</a>
</td>
</tr>
</xsl:for-each>
</td>
</tr>
</table>
</xsl:for-each>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
En hier de code van het xml-bestand (Lijst.xml):
<?xml version="1.0"?>
<!-- <?xml-stylesheet type="application/xml" href="Lijst.xsl"?> -->
<totaal>
<l>
<r class="nieuws" n="Trouw">http://www.trouw.nl</r>
<r class="nieuws" n="De Volkskrant">http://www.volkskrant.nl</r>
<r class="nieuws" n="Nu.nl">http://www.nu.nl</r>
<r class="nieuws" n="Teletekst">http://teletekst.nos.nl/?101-01</r>
<r class="nieuws" n="TAZ">http://www.taz.de</r>
<r class="nieuws" n="IP">http://www.informatieprofessional.nl/home/index.php</r>
<r class="diversen" n="Hotmail">http://www.hotmail.nl</r>
<r class="diversen" n="Postbank">http://www.postbank.nl</r>
<r class="diversen" n="OV">http://www.9292ov.nl/</r>
<r class="diversen" n="KNMI">http://www.knmi.nl</r>
<r class="diversen" n="Buienradar">http://www.buienradar.nl</r>
<r class="kennis" n="Wiki Nl">http://nl.wikipedia.org/wiki/Hoofdpagina</r>
<r class="kennis" n="Wiki Eng.">http://en.wikipedia.org/wiki/Main_Page</r>
<r class="kennis" n="Google">http://www.google.nl</r>
</l>
</totaal>
[/xml]
Laatst bewerkt door een moderator: