У меня есть страница PHP, которая выводит XML, изменяя тип заголовка и выводя xml с таблицей стилей XSL для RSS-канала:
<?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"?>
Дайте мне знать, если есть лучший способ добиться этого.
* UPDATE - это не работает, потому что дополнительные теги не проверяются, потому что они не являются частью пространства имен.
На самом деле забыл поставить rss-теги в вопрос, но когда я добавил XML для хранения переменных PHP между тегами rss и channel, я мог бы динамически их использовать в XSL файле, а XML, используемый для их хранения, не отображается при просмотре в считыватель RSS, например
<rss>
<extraInfo>
<heading>...</heading>
<description>...</description>
</extraInfo>
<channel>
...
</channel>
</rss>
echo "<?xml-stylesheet title='$title' type='text/xsl' href='/path/feed.xsl'?>"
то, что вы хотите?