是否可以在XSL文档中使用PHP?
总是当我尝试这样做时,我会收到错误...所以在吓坏之前我想知道它是否可能。 (我是绝对的初学者)
我有一个像这样的XSL文件
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE xsl:stylesheet [
<!ENTITY nbsp " ">
]>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<head>
<title></title>
<style type="text/css">
[...]
</style>
</head>
<body>
[...]
<div id="content">
<?php echo $anything; ?>
</div>
[...]
</body>
</html>
</xsl:template>
</xsl:stylesheet>
(我剪了代码)
所以我通过PHP包含XML文件(该XML文件使用此XSL文件设置样式) 现在我试图回应例如$ anything
的内容但它不起作用
答案 0 :(得分:2)
如果您将使用XSLTProcessor类来执行XSL,则可以registerPHPFunctions。我一直在XSL中进行某些数据操作。然后我可以在XSL中调用我想要的任何PHP函数或方法。
答案 1 :(得分:1)
您可以在xsl和正在转换的xml中使用它。
答案 2 :(得分:1)
如果您正在运行Saxon-EE 9.7 XSLT处理器,那么您可以使用<xsl:processing-instruction name="php">
作为<?php
标记,但有一个古怪的警告:您必须添加{{1}在结束?
标记之前。
</xsl:processing-instruction>
要使用您的示例,它将如下所示:
<xsl:processing-instruction name="php">
echo "hello world!";
?</xsl:processing-instruction>
答案 3 :(得分:0)
您可以使用simplexml在PHP中操作XML。 http://nl.php.net/simplexml有simplexml类的引用。因此,在将XML文件加载到PHP之后,在使用asXML()函数回显它之前,您可以通过simplexml接口更改XML。