Я хотел бы знать, как интегрировать xslt в сайт php. У меня есть одна идея, хотя ...
PHP-скрипт сериализует данные и отображает их
<?php
echo '
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="test.xsl" ?>
<test>TEST</test>
';
?>
Вывод XML преобразуется в text.xsl
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output
method="html"
doctype-public="-//W3C//DTD HTML 4.01//EN"
doctype-system="http://www.w3.org/TR/html4/strict.dtd"
indent="yes"/>
<xsl:template match="/">
<h1>
<xsl:value-of select="test" />
</h1>
</xsl:template>
</xsl:stylesheet>
Это прекрасно работает, но я не уверен, что это хороший подход. Я буду рад получить несколько советов.
UPD # 1 Роберт предложил использовать расширение PHP. И вот что я получил сейчас:
<?php
$xml='<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="test.xsl" ?>
<test>TEST</test>';
$xslDoc = new DOMDocument();
$xslDoc->load("test.xsl");
$xmlDoc = new DOMDocument();
$xmlDoc->loadXML($xml);
$proc = new XSLTProcessor();
$proc->importStylesheet($xslDoc);
echo $proc->transformToXML($xmlDoc);
?>
Как вы видите, есть внешний xsl-файл и php, который создает xml, загружает как xml, так и внешний xsl в DOM, а затем передает его XSLTProcessor. Это соответствует моим потребностям. Но будет ли это "хорошей практикой"?