Ik begin weer eens met php, met iets heel simpels. Nouja, dat dacht je, want simpele dingen kunnen soms moeilijker zijn dan ze zich voordoen. Enfin, ik probeer met XSL een XML om te zetten naar HTML en naar de output te spugen. Simple as that.
Er is niets fancy aan de php-code, niets fancy aan de xml, niets fancy aan de xslt.
Een snippet uit m'n xml:
Een trimmed-down xslt die niet werkt:
Hier matcht het hele template niet. Ook niet als ik em laat matchen op //imp of imp .
Waarom niet??
Als ik em laat matchen op /*[name()='imp'] dan werkt het als een kitten. Maar wtfbbq waarom is dit? Je kunt toch gewoon op een elementnaam matchen

Het lijkt een beetje plemp-je-code-neer-en-wacht-op-antwoord, maar ik sta hier gewoon perplex. Dit is zo fokking simpel en het is beslist niet voor het eerst dat ik dit doe (tenminste buiten php dan) en ik zie echt ECHT niet waarom dit zo ontzettend faalt... Voor de volledigheid, in m'n php gebruik het het poepsimpele dittem:
Ik zei toch, niets bijzonders aan. Tenminste dat hoop ik. Want in php is dit m'n eerste keer, maar alle internetvoorbeelden lijken op wat ik hier heb. Zou toch goed moeten zijn
Wat doe ik in godsnaam dan nog fout?
Er is niets fancy aan de php-code, niets fancy aan de xml, niets fancy aan de xslt.
Een snippet uit m'n xml:
XML:
1
2
3
4
5
| <imp xmlns="http://thany.nl/imp"> <category id="length"> <!-- ... --> </category> </imp> |
Een trimmed-down xslt die niet werkt:
code:
1
2
3
4
5
6
7
8
| <?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes" encoding="utf-8" standalone="no" omit-xml-declaration="yes"/>
<xsl:template match="/imp">
current = <xsl:value-of select="name(.)"/><br/>
</xsl:template>
</xsl:stylesheet> |
Hier matcht het hele template niet. Ook niet als ik em laat matchen op //imp of imp .
Waarom niet??
Als ik em laat matchen op /*[name()='imp'] dan werkt het als een kitten. Maar wtfbbq waarom is dit? Je kunt toch gewoon op een elementnaam matchen
Het lijkt een beetje plemp-je-code-neer-en-wacht-op-antwoord, maar ik sta hier gewoon perplex. Dit is zo fokking simpel en het is beslist niet voor het eerst dat ik dit doe (tenminste buiten php dan) en ik zie echt ECHT niet waarom dit zo ontzettend faalt... Voor de volledigheid, in m'n php gebruik het het poepsimpele dittem:
PHP:
1
2
3
4
5
6
7
| $xp = new XsltProcessor(); $xsl = new DomDocument(); $xsl->load('units.xslt'); $xp->importStylesheet($xsl); $xml_doc = new DomDocument(); $xml_doc->load('units.xml'); echo $xp->transformToXML($xml_doc); |
Ik zei toch, niets bijzonders aan. Tenminste dat hoop ik. Want in php is dit m'n eerste keer, maar alle internetvoorbeelden lijken op wat ik hier heb. Zou toch goed moeten zijn
Wat doe ik in godsnaam dan nog fout?
日本!🎌