Xml XSLT。php站点上的集成
我想知道如何将xslt集成到php站点中。不过我有一个想法 PHP脚本序列化数据并回显它Xml XSLT。php站点上的集成,xml,templates,xslt,Xml,Templates,Xslt,我想知道如何将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" en
<?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>
它工作得非常好,但我不确定这是否是一个好方法。我很乐意得到一些提示
UPD1 Robert建议使用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。这符合我的需要。但是这是一个好的实践吗?既然您已经有了XML,那么您可能需要查看一个用于PHP的XSLT扩展,这样您的客户机就可以避免多次往返,而且使用的方法无法将参数传递给XSLT
您还可以使用Javascript在客户端以允许传入参数的方式运行XSLT,但这是由于浏览器兼容性问题。客户端还意味着用户正在下载XML和XSLT内容,除非您非常关心服务器端的put,否则我会避免这种情况,因为在我的特别体验中,通常依赖您可以控制的服务器端环境要好得多。谢谢您的快速回复。我已经更新了。这就是你的意思吗?