|
Subject: [xsl] XML > XSL > PHP possible? From: "Michael B Allen ioplex@xxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> Date: Fri, 30 Sep 2022 00:49:41 -0000 |
Hi,
I'm trying to generate PHP from XML. This seems like something that
should be possible but I fear it is not.
Consider the following test.xml > test.xsl > test.php example:
>>>>>>>> XSL <<<<<<<<<
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html"
encoding="UTF-8"
indent="no"/>
<!--
<xsl:output method="xml"
omit-xml-declaration="yes"
encoding="UTF-8"/>
-->
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="processing-instruction('php')">
<xsl:processing-instruction name="php">
<xsl:value-of disable-output-escaping="yes" select="."/>
</xsl:processing-instruction>
</xsl:template>
<xsl:template match="html">
<xsl:text disable-output-escaping="yes"><!DOCTYPE html>
</xsl:text>
<html lang="en">
<xsl:apply-templates/>
</html>
</xsl:template>
</xsl:stylesheet>
>>>>>>>> XML <<<<<<<<<
<html>
<head>
<title>test</title>
</head>
<body>
<header></header>
<main>
<?php
echo '<b>Hello, World!</b>';
?>
<img src="test.png" alt="test"/>
</main>
<footer>
</footer>
</body>
</html>
>>>>>>>> OUTPUT METHOD HTML <<<<<<<<<
With output method="html":
$ xsltproc -o test.php test.xsl test.xml
$ cat test.php
<!DOCTYPE html>
<html lang="en">
<head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>test</title>
</head>
<body>
<header></header>
<main>
<?php echo '<b>Hello, World!</b>';
>
<img src="test.png" alt="test">
</main>
<footer>
</footer>
</body>
</html>
the trailing '?' is not present which causes PHP to generate an error:
PHP Parse error: syntax error, unexpected '>', expecting end of file
in /path/to/test.php on line N
>>>>>>>> OUTPUT METHOD XML <<<<<<<<<
With output method="xml":
$ xsltproc -o test.php test.xsl test.xml
$ cat test.php
<!DOCTYPE html>
<html lang="en">
<head>
<title>test</title>
</head>
<body>
<header/>
<main>
<?php echo '<b>Hello, World!</b>';
?>
<img src="test.png" alt="test"/>
</main>
<footer>
</footer>
</body>
</html>
the trailing ? is present but the result is not valid HTML because of
the self closing tags in void elements like img, header, img, input,
...
Is there some trick to work-around this?
Mike
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| Re: [xsl] Simple style sheet errori, Martin Honnen martin | Thread | Re: [xsl] XML > XSL > PHP possible?, Toshihiko Makita tma |
| Re: [xsl] Simple style sheet errori, Wayne Brissette wayn | Date | Re: [xsl] XML > XSL > PHP possible?, Toshihiko Makita tma |
| Month |