将PHP变量作为参数传递给XSL

时间:2015-05-26 10:45:13

标签: php xml xslt

我有一个PHP页面,它通过更改标题类型输出XML,并使用XSL样式表为RSS提要输出xml:

<?php
header('Content-Type: text/xml; charset=utf-8');
echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n";
echo '<?xml-stylesheet title="XSL_formatting" type="text/xsl" href="/path/feed.xsl"?>' . "\n";
?>
<channel>
    <item>...</item>...
</channel>

我想将一些PHP变量从原始页面传递给XSL,我该怎么做?

实施例: 我有变量......

$header = "This is a cool page";
$description = "This is a description";

...我想传递给XSL页面并在其中使用意味着标题可以通过PHP更改并在XSL中动态更改而不是硬编码。

它不能通过XML传递,因为我使用XSL作为后备,因此当浏览器支持RSS时不应显示标题。此外,它必须来自该页面,而不是使用该变量引用另一个文件。

这样的东西
<?xml-stylesheet title="XSL_formatting" type="text/xsl" param-header="<?=$header?>' param-description="<?=$description?>' href="/path/feed.xsl"?>

让我知道是否有更好的方法来实现这一目标。

1 个答案:

答案 0 :(得分:0)

* UPDATE - 这不起作用,因为额外的标签不会验证,因为它们不是命名空间的一部分。

实际上忘了把rss标签放到问题中但是当我添加XML来存储rss和channel标签之间的PHP变量时,我可以动态地在XSL文件中使用它们,并且用于存储它们的XML不会呈现在RSS阅读器中查看时,例如

<rss>
    <extraInfo>
        <heading>...</heading>
        <description>...</description>
    </extraInfo>
    <channel>
        ...
    </channel>
</rss>